Parameters in Materialized views

Hi
We have a materrialized view. But this refershes all the data in the table.
Can we set or pass any parameters which would refersh only for a set of records.( say for example for a specific year if one of the columns in a date column in the Mat.view)
Please let me know.
Thanks in advance

There is no way to refresh only a part of an mview.
You can create materialised views with a "where" clause to restrict the contents.
If you want to have all data available at the destination, but have different refresh cycles for different date ranges, then I guess you could have multiple "part" mviews and union them together, but this is not an efficient design.

Similar Messages

  • Can we create a Materialized View with Parameters?

    Experts,
    Can we create a materialized view by passing parameters to it. so that we change its value dynamically.
    If yes, plese provide me the eample also.
    Regards
    ND

    I have below mentioned query to be used in MV :
    SELECT ivr_vw.event_type, ivr_vw.event_sub_type,
    ivr_vw.channel_cd,
    ivr_vw.csg_event_id,
    ivr_vw.csg_title,
    ivr_vw.itv_title,
    ivr_vw.program_id,
    ivr_vw.price,
    ivr_vw.addt_flag,
    (SELECT FROM_TZ(TO_TIMESTAMP (TO_CHAR (to_date(ivr_vw.start_date,'MM/DD/YYYY HH24:MI:SS'), 'MM/DD/YYYY HH24:MI:SS'),
    'MM/DD/YYYY HH24:MI:SS' ), 'EST')
    AT TIME ZONE 'MST' FROM DUAL) start_date,
    (SELECT FROM_TZ(TO_TIMESTAMP (TO_CHAR (to_date(ivr_vw.end_date,'MM/DD/YYYY HH24:MI:SS'), 'MM/DD/YYYY HH24:MI:SS'),
    'MM/DD/YYYY HH24:MI:SS' ), 'EST')
    AT TIME ZONE 'MST' FROM DUAL) end_date,
    (SELECT FROM_TZ(TO_TIMESTAMP (TO_CHAR (to_date(ivr_vw.start_order_window,'MM/DD/YYYY HH24:MI:SS'), 'MM/DD/YYYY HH24:MI:SS'),
    'MM/DD/YYYY HH24:MI:SS' ), 'EST')
    AT TIME ZONE 'MST' FROM DUAL) start_order_window,
    (SELECT FROM_TZ(TO_TIMESTAMP (TO_CHAR (to_date(ivr_vw.end_order_window,'MM/DD/YYYY HH24:MI:SS'), 'MM/DD/YYYY HH24:MI:SS'),
    'MM/DD/YYYY HH24:MI:SS' ), 'EST')
    AT TIME ZONE 'MST' FROM DUAL) end_order_window,
    ivr_vw.dnis_cd, ivr_vw.packaged_event_id, ivr_vw.no_instalments,
    ivr_vw.disclaimer_flag, ivr_vw.english_voice_file_name,
    ivr_vw.spanish_voice_file_name, ivr_vw.package_flag,
    ivr_vw.is_all_day_event, ivr_vw.upsell_data, ivr_vw.dur_guaran_flag,
    ivr_vw.cp_profile_id, ivr_vw.high_def_flag
    FROM ppv_ivr_vw ivr_vw,
    (Select time_diff,
    use_daylight
    From ppv_zip_timezones ztz
    Where ztz.zip_code = 80014
    ) timeOffset
    WHERE NOT EXISTS (
    SELECT 'x'
    FROM ppv_channels_blackout_vw blk_vw
    WHERE ivr_vw.channel_cd = blk_vw.channel_cd
    AND blk_vw.zone_type_code = 'Area Code'
    AND blk_vw.zone_code = '435');
    Here, the column 'ztz.zip_code = 80014' should change dynamically as per the request of the user.
    Is it possible. If yes, what is the process of doing so.?
    Regards
    ND

  • Parameters in Init.ora for Materialized Views

    Fellow Experts,
    Are there any other parameters that I need to insert in the init.ora besides QUERY_REWRITE_ENABLED
    and
    QUERY_REWRITE_INTEGRITY
    once I create a materialize view ?
    Thanks.
    Ray.

    Oracle version 10.0.2 and the DDL that I'm planning to use might be simmilar to
    CREATE MATERIALIZED VIEW sales_by_month_by_state
    TABLESPACE example
    PARALLEL 4
    BUILD IMMEDIATE
    REFRESH COMPLETE
    ENABLE QUERY REWRITE
    AS SELECT t.calendar_month_desc, c.cust_state_province,
    SUM(s.amount_sold) AS sum_sales
    FROM times t, sales s, customers c
    WHERE s.time_id = t.time_id AND s.cust_id = c.cust_id
    GROUP BY t.calendar_month_desc, c.cust_state_province;

  • Issue with fast refresh on a materialized view

    Hi,
    Oracle DB version is 10.2.0.3
    We have a matierialized view created using this script. We have materialized view logs on these six tables.
    By default, it is set to ON COMMIT .
    When a batch job is run every morning (usually 100-200 records) we set it to ON DEMAND and then bring it back to ON COMMIT. It takes around 1-2 minutes.
    If the batch is unusually big, like say 100,000 it takes more than 5 hours to put it back on ON COMMIT. (We analyze the schema (GATHER STALE) before refreshing the MV.) Trace shows deletes taking a long time.
    When I see a big batch, I usually drop the view and recreate it with indexes (there is also a context index). Takes 30 mins to do the whole thing.
    I tried refreshing it COMPLETE when the num of rows is high but it still takes more than 2 hours..(I killed it)
    Is there any way to speed things up without dropping and recreating the MV ?
    thanks
    Mat view creation script:
    CREATE MATERIALIZED VIEW WCC_INTERNAL_SEARCH_M
    TABLESPACE ICV_TS_WCC_DATA
    NOCACHE
    LOGGING
    NOCOMPRESS
    NOPARALLEL
    BUILD IMMEDIATE
    REFRESH FAST ON COMMIT
    WITH ROWID
    AS
    SELECT orgname.ROWID orgname_rowid,
    cnt.ROWID cnt_rowid,
    locgrp.ROWID locgrp_rowid,
    cntry.ROWID cdcntry_rowid,
    addrgrp.ROWID addrgrp_rowid,
    addr.ROWID addr_rowid,
    cnt.cont_id cont_id,
    decode(cntry.name,'US',substr(addr.postal_code,1,5),addr.postal_code) postal_code,
    cntry.name country,
    UPPER(addr.addr_line_one) addr_line_one,
    UPPER(addr.addr_line_two) addr_line_two,
    UPPER(addr.addr_line_three) addr_line_three,
    UPPER(addr.CITY_NAME) city_name,
    UPPER(cnt.CONTACT_NAME) display_name,
    UPPER(orgname.ORG_NAME) org_name,
    addr.prov_state_tp_cd
    FROM orgname,
    contact cnt,
    locationgroup locgrp,
    cdcountrytp cntry,
    addressgroup addrgrp,
    address addr
    WHERE locgrp.cont_id = orgname.cont_id
    AND locgrp.cont_id = cnt.cont_id
    AND addrgrp.location_group_id = locgrp.location_group_id
    AND addr.country_tp_cd = cntry.country_tp_cd
    AND addr.address_id = addrgrp.address_id
    AND cnt.INACTIVATED_DT is null
    AND locgrp.END_DT is null
    AND orgname.END_DT is null
    AND cnt.person_org_code = 'O'
    AND cntry.lang_tp_cd = 100
    AND locgrp.member_ind = 'Y'
    AND locgrp.loc_group_tp_code = 'A'
    ORDER by org_name,city_name,postal_code,country;

    This is the script that creates the preferences and then the context index.
    exec ctx_ddl.create_preference('STEM_FUZZY_PREF', 'BASIC_WORDLIST');
    exec ctx_ddl.set_attribute('STEM_FUZZY_PREF','FUZZY_MATCH','AUTO');
    exec ctx_ddl.set_attribute('STEM_FUZZY_PREF','FUZZY_SCORE','60');
    exec ctx_ddl.set_attribute('STEM_FUZZY_PREF','FUZZY_NUMRESULTS','100');
    exec ctx_ddl.set_attribute('STEM_FUZZY_PREF','STEMMER','AUTO');
    exec ctx_ddl.set_attribute('STEM_FUZZY_PREF', 'wildcard_maxterms',15000) ;
    exec ctx_ddl.create_preference('LEXTER_PREF', 'BASIC_LEXER');
    exec ctx_ddl.set_attribute('LEXTER_PREF','index_stems', 'ENGLISH');
    exec ctx_ddl.set_attribute('LEXTER_PREF','skipjoins',',''."+/-&');
    exec ctx_ddl.create_preference('ICV_WCC_INT_SEARCH_CTX_PREF', 'BASIC_STORAGE');
    exec ctx_ddl.set_attribute('ICV_WCC_INT_SEARCH_CTX_PREF', 'I_TABLE_CLAUSE','tablespace ICV_TS_CTX_IDX');
    exec ctx_ddl.set_attribute('ICV_WCC_INT_SEARCH_CTX_PREF', 'K_TABLE_CLAUSE','tablespace ICV_TS_CTX_IDX');
    exec ctx_ddl.set_attribute('ICV_WCC_INT_SEARCH_CTX_PREF', 'N_TABLE_CLAUSE','tablespace ICV_TS_CTX_IDX');
    exec ctx_ddl.set_attribute('ICV_WCC_INT_SEARCH_CTX_PREF', 'I_INDEX_CLAUSE','tablespace ICV_TS_CTX_IDX compress 2');
    exec ctx_ddl.set_attribute('ICV_WCC_INT_SEARCH_CTX_PREF', 'P_TABLE_CLAUSE','tablespace ICV_TS_CTX_IDX');
    exec ctx_ddl.set_attribute('ICV_WCC_INT_SEARCH_CTX_PREF', 'R_TABLE_CLAUSE','tablespace ICV_TS_CTX_IDX');
    CREATE INDEX WCC_INT_SEARCH_CTX_I1 ON WCC_INTERNAL_SEARCH_M
    (ORG_NAME)
    INDEXTYPE IS CTXSYS.CTXCAT
    PARAMETERS('Wordlist STEM_FUZZY_PREF
    LEXER LEXTER_PREF
    STORAGE ICV_WCC_INT_SEARCH_CTX_PREF');
    DB is 10.2.0.3

  • Error while creating Materialized View step 3 of 6 using wizard

    have oracle 9i Rel 1 on Windows 2000 server. Master Site has been setup. Database links are created at Materialized view site. But while creating Materialized View Group using wizard there is following error on step 3 of 6.
    Statement:----------------
    /*OracleOEM*/ SELECT 1 FROM SYS.dba_constraints@masterdbname WHERE OWNER='username' and table_name='tabname' AND constraint_type='P'
    Stack Trace:----------------
    ORA-00942: table or view does not exist.
    ORA-02063: preceding line from masterdbname.
    All parameters for replication are correct.
    Please help me early.
    Thanks

    Hello,
    In the masterdbname, logging as sys user, you must grant select permission on sys.dba_constraints view to mvadmin_dbname user (where dbname is the replicated database name).
    Regards,

  • Error while creating Materialized View step 3 of 6

    I have oracle 9i Rel 1 on Windows 2000 server. Master Site has been setup. Database links are created at Materialized view site. But while creating Materialized View Group there is following error on step 3 of 6.
    Statement:----------------
    /*OracleOEM*/ SELECT 1 FROM SYS.dba_constraints@masterdbname WHERE OWNER='username' and table_name='tabname' AND constraint_type='P'
    Stack Trace:----------------
    ORA-00942: table or view does not exist.
    ORA-02063: preceding line from masterdbname.
    All parameters for replication are correct.
    Please help me early.
    Thanks

    Hello,
    In the masterdbname, logging as sys user, you must grant select permission on sys.dba_constraints view to mvadmin_dbname user (where dbname is the replicated database name).
    Regards,

  • User defined function in materialized view over db link

    I am working in Oracle 10g. Trying to create a materialized view to populate a reporting warehouse from a transactaional database (also oracle 10g).
    In SQL plus I can access a function in a package on the remote database but when I try to use the "working" sql statement in a materialized view I get an invalid identifier error.
    Basically my select statement is ...
    select
    ColA,
    ColB,
    PackageName.Function@db_link(parameters)
    from
    SourceTable@db_link .....
    The select statement works but when I use it within a create materialized view statement I get ora-00904: PackageName.Function: invalid identifier.
    Any help is appreciated.
    Tx,

    What about the error message doesn't make sense?
    The identifier is valid when used in the SQL statement outside of the Create Materailized view. It is my understanding that "most any" valid SQL statement should be usable in an MV.
    Put the function in the local schema?
    I tried that. If the function does not have any input parameters it works. But if it has input parameters the create view statement complains about ORA-00997: illegal use of LONG datatype.
    I made a real simple function Pkg.ASTRING - no input parameters just returns the string 'ABC' -- that worked.
    Then I added an input parameter Pkg.ASTRING (TheInString VARCHAR2) that returns the same 'ABC' string.
    When I include it in the create MV statement Pkg.ASTRING('XYZ') I get the illegal use of LONG datatype.
    What LONG datatype?

  • Using oracle text on a non-materialized view

    I'm having trouble tracking down an error when using oracle text on a non-materialized view (indexes are on the referenced columns). My database has a users table and a user history table which saves the old values when a user profile changes. My view performs a "union all" so I can select from both at once.
    I would like to use oracle text to perform a "contains" on the view whenever someone signs up to see if any current users or historical entries contain the desired username.
    The following works fine:
    contains(user_history_view, 'bill')but when I reference anything in the contains clause, i get a "column is not indexed" error:
    contains(user_history_view, signup.user_name) --signup.username is 'bill'Here is a stripped-down demonstration (I am using version 10.2.0.4.0)
    create table signup (
      signup_id   number(19,0) not null,
      signup_name varchar2(255),
      primary key (signup_id)
    create table users (
      user_id   number(19,0) not null,
      user_name varchar2(255),
      primary key (user_id)
    create table user_history (
      history_id number(19,0) not null,
      user_id    number(19,0) not null,
      user_name  varchar2(255),
      primary key (history_id),
      foreign key (user_id) references users on delete set null
    create index user_name_index on users(user_name)
    indextype is ctxsys.context parameters ('sync (on commit)');
    create index user_hist_name_index on user_history(user_name)
    indextype is ctxsys.context parameters ('sync (on commit)');
    create index signup_name_index on signup(signup_name)
    indextype is ctxsys.context parameters ('sync (on commit)');
    create or replace force view user_history_view
    (user_id, user_name, flag_history) as
    select user_id, user_name, 'N' from users
    union all
    select user_id, user_name, 'Y' from user_history;
    --user bill changed his name to bob, and there is a pending signup for another bill
    insert into users(user_id, user_name) values (1, 'bob');
    insert into user_history(history_id, user_id, user_name) values (1, 1, 'bill');
    insert into signup(signup_id, signup_name) values(1, 'bill');
    commit;
    --works
    select * from user_history_view users, signup new_user
    where new_user.signup_id = 1
    and contains(users.user_name, 'bill')>0;
    --fails
    select * from user_history_view users, signup new_user
    where new_user.signup_id = 1
    and contains(users.user_name, new_user.signup_name)>0;I could move everything into a materialized view, but querying against real-time data like this would be ideal. Any help would be greatly appreciated.

    Hi,
    this is to my knowledge not possible. It is hard for Oracle to do, think about a table with many rows, every row with that column must be checked. So I think only a single varchar2 is possible. Maybe for you will a function work. It is possible to give a function as second parameter.
    function return_signup
    return varchar2
    is
      l_signup_name signup.signup_name%type;
    begin
      select signup_name
      into l_signup_name
      from signup
      where signup_id = 1
      and rownum = 1
      return l_signup_name;
    exception
      when no_data_found
      then
        l_signup_name := 'abracadabra'; -- hope does not exist
        return l_signup_name;
    end;Now you can use above function in the contains.
    select * from user_history_view users --, signup new_user
    --where new_user.signup_id = 1
    where contains(users.user_name, return_signup)>0;I didn't test the code! Maybe you have to adjust the function for your needs. But it is a idea how this can be done.
    Otherwise you must make the check by normaly check the columns by simple using a join:
    select * from user_history_view users, signup new_user
    where new_user.signup_id = 1
    and users.user_name = new_user.signup_name;Herald ten Dam
    htendam.wordpress.com

  • Refresh Order Management Materialized Views errors out in R12.1.3

    Hi All -
    Refresh Order Management Materialized Views errors out in R12.1.3 when submitted with blank parameters. Please find below error details ..
    OEXITORDMV module: Refresh Order Management Materialized Views
    Current system time is 15-OCT-2012 11:30:29
    **Starts**15-OCT-2012 11:30:29
    ORACLE error 12008 in FDPSTP
    Cause: FDPSTP failed due to ORA-12008: error in materialized view refresh path
    ORA-01555: snapshot too old: rollback segment number 4 with name "_SYSSMU4_3768336236$" too small
    ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2566
    ORA
    Start of log messages from FND_FILE
    End of log messages from FND_FILE
    Thanks,

    Cause: FDPSTP failed due to ORA-12008: error in materialized view refresh path
    ORA-01555: snapshot too old: rollback segment number 4 with name "_SYSSMU4_3768336236$" too small
    ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2566Please see old threads for the ORA-015555 docs you need to refer to.
    https://forums.oracle.com/forums/search.jspa?threadID=&q=ORA-01555&objID=c3&dateRange=all&userID=&numResults=15&rankBy=10001
    https://forums.oracle.com/forums/search.jspa?threadID=&q=ORA-01555+AND+Materialized+AND+View&objID=c3&dateRange=all&userID=&numResults=15&rankBy=10001
    Thanks,
    Hussein

  • How to create materialized  view with parameter and index ?

    Hi all,
    i am using oracle 11g.
    i want to create  parameter materialized view  with two parameter (STORED_VALUE, LOV_NAME) with  an index .
    i have below view
    CREATE OR REPLACE FORCE VIEW SR_MY_TEST(DISPLAYED_VALUE, STORED_VALUE, LOV_NAME) AS
      SELECT  DISPLAYED_VALUE , LOVVALUE.STORED_VALUE , lovname.lov_name
               FROM (SELECT T.LOV_VALUE_ID,
          T.LOV_ID,
          T.ORG_ENTITY_ID,
          T.STORED_VALUE,
          T.DISPLAYED_VALUE,
          T.ENTERPRISE_ID
         FROM MS_QS_LIST_OF_VALUES_T T) lovvalue, ms_qs_lov_names lovname
              WHERE lovvalue.lov_id = lovname.lov_id
                AND lovvalue.org_entity_id = 1
                and LOVVALUE.ENTERPRISE_ID = 100000
                AND LOVNAME.ENTERPRISE_ID = 100000;
    i want to create index on   STORED_VALUE, LOV_NAME
    Thanks
    Damby

    No.AFAIK, there's nothing called as "parameterized MV".
    Materialized View store data like tables (and not like Views). So, does it make sense when you say - "table with parameters" ?
    Could you please explain your business requirement?
    What is the purpose behind those 2 parameters?

  • Material View Refresh Slow under 10.2.0.4?

    I have several material views that refreshed in minutes under 9.2.0.6, but are now taking hours under 10.2.0.4. I'm thinking it's in my initialization parameters. I remember the upgrade process making at least one of the HASH parameters obsolete.
    Can anyone point me in a direction quickly?
    A little more info... If I drop and recreate the materialized view from scratch it take just a few minutes to build.
    Thank you.
    Edited by: golflover1 on Jan 3, 2009 7:32 AM
    Edited by: golflover1 on Jan 3, 2009 7:33 AM

    What type of refresh you use to refresh the Materialized Views? (COMPLETE, FAST, FORCE)
    Since you migrated to 10g there is a slight difference in how Oracle does the refresh.
    Prior to 10g, when a materialized view is completely refreshed the base table was truncated and then populated with a data.
    Starting from 10g, the default behavior is changed and truncate is replaced with delete which results in longer refresh times.
    This is expected behavior, even though there was a bug associated with it Bug#4132133 which was closed as NOT A BUG.
    However, if you still want to do a truncate instead of delete, you should set atomic_refresh=>FALSE in your DBMS_MVIEW.REFRESH command. This will do a truncate and refresh will complete faster.
    You should be careful about this since there will be a time when the MV will contain no data.
    golflover1 wrote:
    A little more info... If I drop and recreate the materialized view from scratch it take just a few minutes to build.
    This just confirms what I have written above. When you drop and recreate the MV, it doesn't do the DELETE so it completes faster.
    I would say, go ahead and try to refresh the view with atomic_refresh=>FALSE and compare the execution times.
    begin
             dbms_mview.refresh(list=>'your mv name',method=>'C',atomic_refresh=>FALSE);
    end;For more about DBMS_MVIEW.REFRESH check the reference docs on this link</link>.
    Cheers,

  • Materialized views  not updating

    I'm having trouble with getting a materialized view with fast refresh to update. I'm working between two schemas and have the global query rewrite privilege for both users. I've run the catrep.sql script to make sure it had been run and find that it has a lot of packages that don't compile, which I guess is expected as I'm not using Advanced Replication. I think the problem is that I can't get the dbms_snapshot package to compile so can't even update the view manually. Is there another script I need to run to make the materialized views work? Some other privilege or variable?
    I've granted permissions on tables, views, materialized views, triggers, and snapshots to both users.
    The log does get entries but never sends them to the views.
    I have a base table and a log on the table in schema 1.
    I have a materialized view in schema 2:
    create materialized view log on schema1.document
    tablespace app_mview
    with primary key
    ( list columns needed);
    create materialized view schema2.doc_mv
    pctfree 0
    tablespace app_mview
    storage (initial 128k next 128k pctincrease 0)
    refresh fast
    start with sysdate
    next sysdate + 1/1440
    as select * from schema1.document
    Does anyone know where my problem might be?
    thanks for any help

    I have temporary parameters, not in itit.ora but echoing the job_queue_processes is 10, job_queue_interval is 60.
    a sho err returns no errors.
    earlier I did not get anything new in dba_errors when trying to compile. Since I've rerun the catrep.sql I'm getting pls-00201 - identifier must be declared for a lot of dbms_snap, sys.dbms_alert, dbms_reputil2 etc. (package, package body, and trigger types) That is why I think there must be another script that should be run that I don't know about.
    I can't do a full refresh because the dbms_snapshot package will not compile. I believe it's possible that both full and fast will work once I get the dbms_snapshot package working.
    thanks for your help
    pat

  • Materialized View - Point in time refresh

    I have a MV group which refreshes from a bunch of master tables. The master tables are constantly getting updated from an OLTP application. In this scenario, I want all the MVs to hold data which was available at the time the refresh started and not the changes after that.
    Eg:
    Master tables are T1, T2 ... T20 refresh to MVs T1_MV, T2_MV ...T20_MV
    All the MVs T1_MV to T20_MV are in a refresh group.
    At 3 PM: Execute an explicit refresh for the MV refresh group
    At 3:05 PM: OLTP application inserts a record into table T5 & commits
    At 3:06 PM (rather any time after 3:05 PM): Refresh of T5_MV happens. Will the latest insert get captured in T5_MV? I actually don't want this to happen for my requirement, because I want the data captured as of 3 PM into the MVs.
    The Oracle Advanced Replication guide says the following about Materialized Views -
    +"A materialized view is a replica of a target master from a single point in time."+
    From the above line, it looks like by default this will not be captured in the MV. Can someone please confirm my understanding ?

    MVs in a Refresh Group when refreshed as a Refresh Group are refreshed as of the same point in time.
    So if the Refresh Group begins at 3:00pm and ends at 3:25pm, all the MVs in that group reflect the data as in the source tables as of 3:00pm, ignoring any updates to source tables after 3:00pm (i.e. while the Group is being refreshed).
    However, if you refresh MVs individually, then each MV is refreshed at it's relative point in time -- so individual Refreshs of MVs would not be to the same point in time.
    How have you defined the Refresh Group ?
    How do you execute the Refresh for the whole Group ? What PLSQL procedure do you use ? What parameters do you use ?
    Ensure that you do not execute an individual MV Refresh.
    Hemant K Chitale
    http://hemantoracledba.blogspot.com

  • Materialized view - parameter and refresh

    Hi,
    We are creating a Materialized view that has 2 rows for a CCID, one for this year and one for previous year with balances in 12 buckets.
    We have 2 questions:
    1. Can a materialized view be created with a parameter? or it can only take hard coded values?
    2. Can we refresh a part of materialized view, lets say we want to refresh the balances only for this year?
    Thanks

    user12182208 wrote:
    Hi,
    We are creating a Materialized view that has 2 rows for a CCID, one for this year and one for previous year with balances in 12 buckets.
    We have 2 questions:
    1. Can a materialized view be created with a parameter? or it can only take hard coded values? Typically, you want a materialized view to contain a complete set of aggregate data ... so, no, parameters don't really make sense (also, the results are pre-computed unlike a regular VIEW which is just a stored query. With a MV the data is actually computed on creation unless you defer it, and takes up physical storage).
    >
    2. Can we refresh a part of materialized view, lets say we want to refresh the balances only for this year?
    You can (depending on your Oracle Version and complexity of your materialized view) create a materialized view that does fast refreshes. If for some reason it was pertinent for you to achieve what you've asked, you could make 2 MV's and then a view that does a UNION ALL of them (the MV's would not contain overlaps), then you would just refresh the 1 MV, seems odd to me to want to do this though.
    Thanks

  • Fast refresh materialized view on demand but not working

    Hi all,
    I've created a simple table called xx using the following statements:
    1.) create table xx(x1 varchar2(10),x2 varchar2(10),x3 varchar2(10);
    2.) alter table xx add primary key (x1,x2);
    I've also created a materialized log on xx using:
    3.) create materialized view log on xx;
    Finally, I've create a very simple materialized view based on the table xx using:
    4.) create materialized view mv_xx refresh fast on demand as select * from xx;
    The version of Oracle I'm currently using is:
    Oracle9i Enterprise Edition Release 9.2.0.6.0 - Production
    PL/SQL Release 9.2.0.6.0 - Production
    CORE 9.2.0.6.0 Production
    TNS for 32-bit Windows: Version 9.2.0.6.0 - Production
    NLSRTL Version 9.2.0.6.0 - Production
    Everything seems to be ok. However when I execute the dbms_mview.refresh('mv_xx','f') after performing any DMLs like INSERT, DELETE or UPDATE statements to the xx table. The data never gets refreshed to mv_xx and it only works on the complete refresh. Could anyone help me please as I must have missed or misunderstood some of the points about materialized view. By the way, do I need to set any flags or alter any system or session parameters prior to creating the materialized view or any other related components. Thank you.
    Regards,
    John

    Yes, mv_xx is created in the same schema as xx. Do you have any ideas.

Maybe you are looking for