Problem with queries while refreshing materialized views
We are in oracle 8.1.7. We have some materialized views that are refreshed with DMBS_REFRESH.REFRESH in a Job. The problem is that when the refresh occurs while a query is executing we get a "Invalid Rowid" or "0RA-08103 Object not longer exists" in the session executing the query.
We already have reproduced the problem. Is this a bug ? Any idea?
Thanks.
Check if the objects referred in the MV defination has undergone any reorg recently.
Similar Messages
-
Problem with replication based on materialized view
Problem with replication based on materialized view...
Given:
1. Source: S-1
2. Targets: T-1, T-2
3. DB links: from T-1 to S-1, from T-2 to S-1
Required replicate table TBL on S-1 to T-1, T-2 via db links.
On S-1 was created materialized view log with PK on TBL. On T-1, T-2 were created mat.views as "on prebuilt table refresh fast on demand". In case of get "ORA-12034: materialized view log younger than last refresh" or initial load - perform complete refresh. Initial load on T-1 takes about 1 hour, on T-2 - about 12 hours. Refresh is executed via job with minutely interval. If refresh is running then it is not performed.
Problem: after initial load on T-1 performs fast refresh, but on T-2 raised ORA-12034 and complete performs again.
What's wrong?34MCA2K2, Google lover?
I confess perhaps I gave a little info.
View log was created before MV.
It was the first initial load.
No refresh failed.
No DDL.
No purge log.
Not warehouse.
There is no such behavior for MVs on another sites.
P.S. I ask help someone who knows what's wrong or who faced with it or can me follow by usefull link.
P.P.S. It's a pity that there is no button "Useless answer" -
PX Deq Credit: send blkd is getting hang while refreshing materialized view
Hi All,
When we are refreshing materialized view. It is taking more than 2.30 mins. Initially it was taking 1.40 Mins.
We are using parallel and base tables are partitioned. When i checked the tkprof report i see lots of insert query is mostly waiting for PX Deq Credit: send blkd event. When i check the ASH report I don't find any query related to MV was running but still MV refresh was going on
TKPROF: Release 11.2.0.1.0 - Development on Wed Jun 5 16:27:29 2013
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
Trace file: CHDFCI_p001_43384918_PARALLEL.trc
Sort options: exeela prsela fchela
count = number of times OCI procedure was executed
cpu = cpu time in seconds executing
elapsed = elapsed time in seconds executing
disk = number of physical reads of buffers from disk
query = number of buffers gotten for consistent read
current = number of buffers gotten in current mode (usually for update)
rows = number of rows processed by the fetch or execute call
EXPLAIN PLAN option disabled.
SQL ID: 2x210q5g30m4t
Plan Hash: 2058446196
INSERT /*+ BYPASS_RECURSIVE_CHECK APPEND */ INTO
"APPS"."GL_BAL_MV" SELECT * FROM
GL_BAL_V
call count cpu elapsed disk query current rows
Parse 1 0.00 0.00 0 0 0 0
Execute 1 362.20 9372.04 1158765 0 0 0
Fetch 0 0.00 0.00 0 0 0 0
total 2 362.20 9372.04 1158765 0 0 0
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 175 (recursive depth: 1)
Rows Row Source Operation
0 LOAD AS SELECT (cr=0 pr=0 pw=0 time=0 us)
0 PX COORDINATOR (cr=0 pr=0 pw=0 time=0 us)
0 PX SEND QC (RANDOM) :TQ10003 (cr=0 pr=0 pw=0 time=0 us cost=1041298 size=389555904 card=2028937)
78448967 HASH JOIN BUFFERED (cr=0 pr=1158765 pw=1158765 time=276842112 us cost=1041298 size=389555904 card=2028937)
410944 BUFFER SORT (cr=0 pr=0 pw=0 time=492466 us)
410944 PX RECEIVE (cr=0 pr=0 pw=0 time=34526636 us cost=64715 size=147944250 card=1643825)
0 PX SEND HASH :TQ10001 (cr=0 pr=0 pw=0 time=0 us cost=64715 size=147944250 card=1643825)
0 PARTITION RANGE ALL PARTITION: 1 39 (cr=0 pr=0 pw=0 time=0 us cost=64715 size=147944250 card=1643825)
0 TABLE ACCESS FULL GL_CODE_COMBINATIONS PARTITION: 1 39 (cr=0 pr=0 pw=0 time=0 us cost=64715 size=147944250 card=1643825)
78448967 PX RECEIVE (cr=0 pr=0 pw=0 time=2453949696 us cost=976582 size=395060280 card=3873140)
0 PX SEND HASH :TQ10002 (cr=0 pr=0 pw=0 time=0 us cost=976582 size=395060280 card=3873140)
0 HASH JOIN (cr=0 pr=0 pw=0 time=0 us cost=976582 size=395060280 card=3873140)
0 BUFFER SORT (cr=0 pr=0 pw=0 time=0 us)
0 PX RECEIVE (cr=0 pr=0 pw=0 time=0 us cost=32 size=133920 card=2480)
0 PX SEND BROADCAST :TQ10000 (cr=0 pr=0 pw=0 time=0 us cost=32 size=133920 card=2480)
0 HASH JOIN (cr=0 pr=0 pw=0 time=0 us cost=32 size=133920 card=2480)
0 TABLE ACCESS FULL GL_SETS_OF_BOOKS (cr=0 pr=0 pw=0 time=0 us cost=7 size=108 card=6)
0 TABLE ACCESS FULL GL_PERIODS (cr=0 pr=0 pw=0 time=0 us cost=24 size=44640 card=1240)
0 PX BLOCK ITERATOR PARTITION: 1 39 (cr=0 pr=0 pw=0 time=0 us cost=976550 size=30099548160 card=627073920)
0 TABLE ACCESS FULL GL_BALANCES PARTITION: 1 39 (cr=0 pr=0 pw=0 time=0 us cost=976550 size=30099548160 card=627073920)
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
PX Deq: Execution Msg 3 0.16 0.17
PX Deq Credit: send blkd 1061004 1.99 5084.61
PX Deq: Table Q Normal 250856 2.00 2306.87
asynch descriptor resize 1 0.00 0.00
Disk file operations I/O 10 0.23 0.26
direct path write temp 3608 1.20 958.39
latch free 26 0.02 0.19
PX qref latch 7647924 0.05 11.85
direct path read temp 578 0.43 35.19
PX Deq Credit: need buffer 4037 0.08 5.84
OVERALL TOTALS FOR ALL NON-RECURSIVE STATEMENTS
call count cpu elapsed disk query current rows
Parse 0 0.00 0.00 0 0 0 0
Execute 0 0.00 0.00 0 0 0 0
Fetch 0 0.00 0.00 0 0 0 0
total 0 0.00 0.00 0 0 0 0
Misses in library cache during parse: 0
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
PX Deq: Execution Msg 3 0.47 0.75
PX Deq: Slave Session Stats 1 0.15 0.15
OVERALL TOTALS FOR ALL RECURSIVE STATEMENTS
call count cpu elapsed disk query current rows
Parse 1 0.00 0.00 0 0 0 0
Execute 1 362.20 9372.04 1158765 0 0 0
Fetch 0 0.00 0.00 0 0 0 0
total 2 362.20 9372.04 1158765 0 0 0
Misses in library cache during parse: 0
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
PX Deq: Execution Msg 3 0.16 0.17
PX Deq Credit: send blkd 1061004 1.99 5084.61
PX Deq: Table Q Normal 250856 2.00 2306.87
asynch descriptor resize 1 0.00 0.00
Disk file operations I/O 10 0.23 0.26
direct path write temp 3608 1.20 958.39
latch free 26 0.02 0.19
PX qref latch 7647924 0.05 11.85
direct path read temp 578 0.43 35.19
PX Deq Credit: need buffer 4037 0.08 5.84
1 user SQL statements in session.
0 internal SQL statements in session.
1 SQL statements in session.
0 statements EXPLAINed in this session.
Trace file: CHDFCI_p001_43384918_PARALLEL.trc
Trace file compatibility: 11.1.0.7
Sort options: exeela prsela fchela
1 session in tracefile.
1 user SQL statements in trace file.
0 internal SQL statements in trace file.
1 SQL statements in trace file.
1 unique SQL statements in trace file.
8986825 lines in trace file.
9372 elapsed seconds in trace file.When i checked the ASH report during this time. I don't see anything running related to MV.
I am using parallel degree 8 for GL_BALANCES.
Please suggest.Hi
After enabling the DML also, same plan is getting generated.
MV refresh is taking same time.
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | Pstart| Pstop | TQ |IN-OUT| PQ Distrib |
PLAN_TABLE_OUTPUT
| 0 | INSERT STATEMENT | | | | 1027K(100)| | | | | | |
| 1 | LOAD AS SELECT | | | | | | | | | | |
| 2 | PX COORDINATOR | | | | | | | | | | |
| 3 | PX SEND QC (RANDOM) | :TQ10003 | 1998K| 365M| 1027K (1)|999:59:59 | | | Q1,03 | P->S | QC (RAND) |
| 4 | HASH JOIN BUFFERED | | 1998K| 365M| 1027K (1)|999:59:59 | | | Q1,03 | PCWP | |
| 5 | BUFFER SORT | | | | | | | | Q1,03 | PCWC | |
| 6 | PX RECEIVE | | 1642K| 141M| 64715 (0)|999:59:59 | | | Q1,03 | PCWP | |
| 7 | PX SEND HASH | :TQ10001 | 1642K| 141M| 64715 (0)|999:59:59 | | | | S->P | HASH |
| 8 | PARTITION RANGE ALL | | 1642K| 141M| 64715 (0)|999:59:59 | 1 | 39 | | | |
| 9 | TABLE ACCESS FULL | GL_CODE_COMBINATIONS | 1642K| 141M| 64715 (0)|999:59:59 | 1 | 39 | | | |
| 10 | PX RECEIVE | | 3820K| 371M| 963K (1)|999:59:59 | | | Q1,03 | PCWP | |
PLAN_TABLE_OUTPUT
| 11 | PX SEND HASH | :TQ10002 | 3820K| 371M| 963K (1)|999:59:59 | | | Q1,02 | P->P | HASH |
| 12 | HASH JOIN | | 3820K| 371M| 963K (1)|999:59:59 | | | Q1,02 | PCWP | |
| 13 | BUFFER SORT | | | | | | | | Q1,02 | PCWC | |
| 14 | PX RECEIVE | | 2480 | 130K| 32 (4)| 00:40:12 | | | Q1,02 | PCWP | |
| 15 | PX SEND BROADCAST | :TQ10000 | 2480 | 130K| 32 (4)| 00:40:12 | | | | S->P | BROADCAST |
| 16 | HASH JOIN | | 2480 | 130K| 32 (4)| 00:40:12 | | | | | |
| 17 | TABLE ACCESS FULL| GL_SETS_OF_BOOKS | 6 | 108 | 7 (0)| 00:08:48 | | | | | |
| 18 | TABLE ACCESS FULL| GL_PERIODS | 1240 | 44640 | 24 (0)| 00:30:09 | | | | | |
| 19 | PX BLOCK ITERATOR | | 618M| 27G| 963K (1)|999:59:59 | 1 | 39 | Q1,02 | PCWC | |
| 20 | TABLE ACCESS FULL | GL_BALANCES | 618M| 27G| 963K (1)|999:59:59 | 1 | 39 | Q1,02 | PCWP | |
--------------------------------------------------------------------------------------------------------------------------------------------------Please find the completion time for MV refresh.
14:58:47 SQL> alter session enable parallel dml;
Session altered.
Elapsed: 00:00:00.27
14:59:50 SQL> exec dbms_mview.REFRESH ('GL_BAL_MV','C',atomic_refresh=>FALSE);
PL/SQL procedure successfully completed.
Elapsed: 02:30:58.37
Thanks -
Synonym problem with external table in materialized view
I have a materialized view that includes selects on two external tables.
However, no matter how I try to access the external tables, the creation fails with a "Synonym Translation Is No Longer Valid" (ORA-00980) error.
This happens even when I replace the tablename with the full table name, including the link.
I can create a view just fine, but if I then try something like CREATE MATERIALIZED VIEW mvw_my_view AS SELECT * FROM vw_my_view (where vw_my_view is the view in question), it still throws the Synonym Translation exception.00980, 00000, "synonym translation is no longer valid"
// *Cause: A synonym did not translate to a legal target object. This
// could happen for one of the following reasons:
// 1. The target schema does not exist.
// 2. The target object does not exist.
// 3. The synonym specifies an incorrect database link.
// 4. The synonym is not versioned but specifies a versioned
// target object.
// *Action: Change the synonym definition so that the synonym points at
// a legal target object.It is really, Really, REALLY difficult to fix a problem that can not be seen.
use COPY & PASTE so we can see what you do & how Oracle responds. -
A table with two fast refresh materialized views
Hi,
In the current env of ours, there are three database servers.
Data is to refreshed on demand from the master site to other two materialized view sites using fast refresh.
Means if we have a table name ABC on Site 1. Then site2 and site3 needs to have fast refresh materialzied views from ABC.
Can we use same materialzied view logs of ABC to refresh site2 and site3 (on demand)?
Thanks,
RamneekYes. Assuming materialized views on both site2 and site3, the MV logs on site1 won't be cleared until the data has been pushed to both site2 and site3.
Justin
Distributed Database Consulting, Inc.
http://www.ddbcinc.com/askDDBC -
Unable to refresh Materialized view group when an Mview is added
Hi,
I have 8 MVs present in my DB and added them to a MV refresh group. But I am getting the error below when I try to refresh the group.
SQL> exec DBMS_REFRESH.refresh('MVRFRSHGRP_EAIGHD');
begin DBMS_REFRESH.refresh('MVRFRSHGRP_EAIGHD'); end;
ORA-12048: error encountered while refreshing materialized view "MYUAT"."MV_EAI_PJRM_EMP_ALLOC_DTLS"
ORA-12018: following error encountered during code generation for "MYUAT"."MV_EAI_PJRM_EMP_ALLOC_DTLS"
ORA-00942: table or view does not exist
ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2563
ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2776
ORA-06512: at "SYS.DBMS_IREFRESH", line 685
ORA-06512: at "SYS.DBMS_REFRESH", line 195
ORA-06512: at line 1
SQL> Actually the view MV_EAI_PJRM_EMP_ALLOC_DTLS exists and MVlog$ are present at source site.
When I remove this view from the group, I am able to refresh it successfully.
I destroyed the group, recreated and added all the views and tried. But no luck.
Can some one suggest what could be the problem?
Regards
DeepHi,
You didn't leave a version (Again), so I can only guess.
You may be suffering from
Bug 10096159 ORA-12048 error message raised by DBMS_REFRESH.REFRESH is not corrrect
Meaning it could be a different MV that fails to refresh.
Regards
Peter
Edit:
Versions confirmed as being affected (There could be others, mind)
11.2.0.1
11.1.0.7
10.2.0.5
10.2.0.3
Edited by: Peter on Sep 4, 2012 8:45 AM -
Problems while facing Materialized Views
Hello All,
I am facing some problems while creating Materialized Views.
Senario.
SCOTT USER:
sql> Grant select on emp to Public;
sql> Create materialized view log on emp;
Connected to LDB User
sql> CREATE MATERIALIZED VIEW mt_emp
Refresh fast
as select * FROM scott.emp;
I am getting error.. Stating that Table doesnt Exist.
Please tell me the Reason..
Note:
If there is No Log on table Emp then it is throwing the error that there in no LOG on the EMP Table.
Now when I create a Log on EMP table --> Then it is giving the Problem that Table doesn't Exist.Hello paragjp
The Below are the Steps I am Implementing..
Connect as Scott User.
SQL> Grant select on Emp to Public;
SQL> Create materialized view log on emp with primar key;
Now I will be Connecting to Other User Say LDB
Connect as LDB User
SQL> CREATE MATERIALIZED VIEW mt_emp
Refresh fast
as select * FROM scott.emp;
-- The Below Errors are comming
ERROR at line 3:
ORA-12018: following error encountered during code generation for "K5ESK_LDB2"."MT_EMP"
ORA-00942: table or view does not exist -
Error While Creating Fast Refresh Materialized view.
Table Scripts:
CREATE TABLE CONTRACT_MASTER
CONTRACT_SEQ NUMBER(10) NOT NULL,
PDN CHAR(5) NOT NULL,
APPID NUMBER(10) NOT NULL,
CONTRACT_LOB_DESC VARCHAR2(20) NOT NULL,
CUSTOMER_NAME VARCHAR2(57) NOT NULL,
CONTRACT_DT DATE NOT NULL,
CONTRACT_RECD_DT DATE NOT NULL,
HELD_OFFERING_DT DATE NOT NULL,
DRAFT_AMT NUMBER(15,2) NOT NULL,
STATUS_DESC VARCHAR2(20) NOT NULL,
GIF_UPLOAD_TM TIMESTAMP NOT NULL
CREATE table CONTRACT_COMMENTS
CONTRACT_COMMENTS_SEQ NUMBER(10) NOT NULL,
APPID NUMBER(10) NOT NULL,
COMMENTS VARCHAR2(1000) NOT NULL,
GIF_UPLOAD_TM TIMESTAMP NOT NULL
Constraints on tables
ALTER TABLE CONTRACT_MASTER ADD
CONSTRAINT XPKCONTRACT_MASTER PRIMARY KEY (CONTRACT_SEQ) USING INDEX ;
ALTER TABLE CONTRACT_COMMENTS ADD
CONSTRAINT XPKCONTRACT_COMMENTS PRIMARY KEY (CONTRACT_COMMENTS_SEQ) USING INDEX ;
alter table CONTRACT_MASTER add CONSTRAINT XUIAPPCONTRACT_MASTER UNIQUE (APPID) USING INDEX;
CREATE INDEX XUIAPPCONTRACT_COMMENTS ON
CONTRACT_COMMENTS(APPID) ;
Materialized View Creation:
CREATE MATERIALIZED VIEW LOG ON CONTRACT_MASTER WITH PRIMARY KEY,ROWID;
CREATE MATERIALIZED VIEW LOG ON CONTRACT_COMMENTS WITH PRIMARY KEY, ROWID;
CREATE MATERIALIZED VIEW MV_CONTRACT_COMMENTS_HELDOFFERING
REFRESH FAST
ENABLE QUERY REWRITE AS
SELECT APPID,COMMENTS FROM CONTRACT_COMMENTS WHERE APPID IN (
SELECT APPID FROM CONTRACT_MASTER WHERE STATUS_DESC = 'Held Offering' )
Errors generated:
ERROR at line 4:
ORA-12015: cannot create a fast refresh materialized view from a complex query
_*Afer That I have changed the query but still it was not created like:*_
CREATE MATERIALIZED VIEW MV_CONT_COMMNTS_HELDOFFERNG
REFRESH FAST
ENABLE QUERY REWRITE AS
SELECT CONTRACT_COMMENTS_SEQ,c.APPID,COMMENTS
FROM CONTRACT_COMMENTS c,CONTRACT_MASTER m
WHERE m.APPID = c.APPID and m.STATUS_DESC = 'Held Offering'
*even though error displayed:
SQL> CREATE MATERIALIZED VIEW MV_CONT_COMMNTS_HELDOFFERNG*
2 REFRESH FAST
3 ENABLE QUERY REWRITE AS
4 SELECT CONTRACT_COMMENTS_SEQ,c.APPID,COMMENTS
5 FROM CONTRACT_COMMENTS c,CONTRACT_MASTER m
6 WHERE m.APPID = c.APPID and m.STATUS_DESC = 'Held Offering';
FROM CONTRACT_COMMENTS c,CONTRACT_MASTER m
ERROR at line 5:
ORA-12052: cannot fast refresh materialized view GSSIO.MV_CONT_COMMNTS_HELDOFFERNG
*Again I have done "Analyzing Materialized Views for Fast Refresh" as follows:*
1: exec dbms_mview.explain_mview('MV_CONT_COMMNTS_HELDOFFERNG');
2: SELECT capability_name, possible, SUBSTR(msgtxt,1,60) AS msgtxt
FROM mv_capabilities_table
WHERE capability_name like '%FAST%';
Output is :
CAPABILITY_NAME P MSGTXT
REFRESH_FAST N
REFRESH_FAST_AFTER_INSERT N the SELECT list does not have the rowids of all the detail t
REFRESH_FAST_AFTER_ONETAB_DML N see the reason why REFRESH_FAST_AFTER_INSERT is disabled
REFRESH_FAST_AFTER_ANY_DML N see the reason why REFRESH_FAST_AFTER_ONETAB_DML is disabled
REFRESH_FAST_PCT N PCT is not possible on any of the detail tables in the mater
Please suggest what to do to implement fast refresh materialized view for same.Edited by: dba on Sep 20, 2010 12:00 AMIf the two MVs have to be consistent with each other as of a specific time, put them into a Refresh Group and refresh them with DBMS_MVIEW.REFRESH
If an MV is dependent on another, use DBMS_MVIEW.REFRESH_DEPENDENT
See the "Oracle® Database PL/SQL Packages and Types Reference" documentation pages for DBMS_MVIEW.
Hemant K Chitale
http://hemantoracledba.blogspot.com --- this is NOT a documentation site.
Edited by: Hemant K Chitale on Sep 20, 2010 5:19 PM -
Problem in Refresh Materialized Views
Hi
we are facing a problem in deleting data.
delete process got stuck at refresh materialized view. Can anyone tells me what are possible causes?
Regards,
RJ.> we are using PL/SQL Developer
Good choice :)
I have the following custom tabs (among others) set up in the Sessions screen:
Current Wait:
SELECT wait_time
, seconds_in_wait
, state
, event
FROM v$session_wait
WHERE sid = :sid
ORDER BY seq#Session waits:
SELECT sid
, event
, total_waits
, total_timeouts
, ROUND(time_waited/*_micro*/ /100) as seconds
, ROUND(average_wait,1) AS average_wait
, max_wait
, time_waited/*_micro*/
, ROUND(100 * RATIO_TO_REPORT(time_waited) OVER ()) AS percent
FROM v$session_event
WHERE sid = :sid
ORDER BY time_waited_micro DESCCurrent Plan in 9i requires a view such as Tom Kyte's DYNAMIC_PLAN_TABLE (view owner needs SELECT permission on SYS.V_$SQL_PLAN).
Then the "Current Plan" tab is:
SELECT /*+ RULE */ plan_table_output
FROM TABLE(dbms_xplan.display
( 'DYNAMIC_PLAN_TABLE'
, ( SELECT DISTINCT rawtohex(sql_address) || '_0' x
FROM v$session
WHERE sid = :sid
AND serial# = :serial# )
, 'serial') ) -
ORA-12015: cannot create a fast refresh materialized view from a complex q
Hi,
I'm facing very strange problem. Please help me why this error is coming
I'm creating a simple materialized view, but it is giving below error since this is simple select * from.
CREATE MATERIALIZED VIEW EFMS.MS_TASK
BUILD IMMEDIATE
REFRESH FAST
START WITH SYSDATE
NEXT (SYSDATE + 1/24)
WITH ROWID
AS
SELECT * FROM MS_TASK@efms_link;
SELECT * FROM MS_TASK@efms_link
ERROR at line 8:
ORA-12015: cannot create a fast refresh materialized view from a complex query
CREATE MATERIALIZED VIEW LOG ON MSDBO.MS_TASK
TABLESPACE DBOR_MVLOG
PCTUSED 0
PCTFREE 60
INITRANS 20
MAXTRANS 255
STORAGE (
INITIAL 64K
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
BUFFER_POOL DEFAULT
NOCACHE
NOLOGGING
PARALLEL ( DEGREE 2 INSTANCES 1 )
WITH ROWID, PRIMARY KEY
EXCLUDING NEW VALUES;1º
Not is a best practice to use 'select *'
2º
ORA-12015: cannot create a fast refresh materialized view from a complex query
Cause: Neither ROWIDs and nor primary key constraints are supported for complex queries.
Action: Reissue the command with the REFRESH FORCE or REFRESH COMPLETE option or create a simple materialized view.
Then you have to change REFRESH FAST or create a primary key in MS_TASK@efms_link to avility fast refresh.
. :-) any help with my english is wellcome :-) . -
Error occured while creating MATERIALIZED VIEW
I created as below:
CREATE MATERIALIZED VIEW LOG ON FIN.F_CV_HDR
WITH ROWID, SEQUENCE, PRIMARY KEY;
CREATE MATERIALIZED VIEW LOG ON FIN.F_CV_DTL
WITH ROWID, SEQUENCE;
REATE MATERIALIZED VIEW F_GL_SMRY_MVW
PARALLEL
BUILD IMMEDIATE
REFRESH FAST ON COMMIT AS
SELECT * FROM
SELECT
F_CV_HDR.ROWID "HDR_ID",
CAST(NULL AS ROWID) "DTL_ID",
cah_dsm_trm_tr_code gsv_dsm_trm_tr_code,
cah_dsm_dcmnt_type gsv_dsm_dcmnt_type,
cah_cv_nmbr gsv_dcmnt_nmbr,
cah_lcm_lctn_code dsv_lcm_lctn_code,
cah_dsm_dcmnt_srs gsv_dsm_dcmnt_srs,
cah_cv_date gsv_dcmnt_date,
'G' gsv_sub_code_type,
DECODE(cah_dsm_dcmnt_type,'CPV',0,'CRV',cah_net_amnt) gsv_amnt_dbtd,
DECODE(cah_dsm_dcmnt_type,'CPV','C','CRV','D') gsv_dr_cr_indctr,
cah_net_amnt gsv_amnt,
DECODE(cah_dsm_dcmnt_type,'CPV',cah_net_amnt,'CRV',0) gsv_amnt_crdtd,
cah_asm_sbldgr_code gsv_sub_code,
CAH_RMRKS GSV_RMRKS,
CAST(NULL AS VARCHAR2(3)) GSV_CRS_RFRNCE_TYPE,
CAST(NULL AS VARCHAR2(3)) GSV_CRS_RFRNCE_TR_CODE,
CAST(NULL AS NUMBER(10)) GSV_CRS_RFRNCE_NMBR,
CAST(NULL AS VARCHAR2(6)) GSV_FCM_CRNCY_CODE,
CAST(NULL AS NUMBER(6,3)) GSV_EXCHNGE_RATE,
CAST(NULL AS NUMBER(13,2)) GSV_FRGN_CRNCY_AMNT,
CAST(NULL AS DATE) GSV_DATE_FROM,
CAST(NULL AS DATE) GSV_DATE_TO,
CAST(NULL AS NUMBER(7)) GSV_RJH_NMBR,
CAST(NULL AS VARCHAR2(3)) GSV_PJC_SRS,
CAST(NULL AS NUMBER(7)) GSV_PJC_NMBR,
CAST(NULL AS NUMBER(3)) GSV_PJC_EQPTMNT_SRL,
CAST(NULL AS VARCHAR2(5))GSV_PJC_EXPNSE_HEAD_CODE,
CAST(NULL AS VARCHAR2(3)) gsv_dpm_dprtmnt_code,
cah_asm_amm_main_code gsv_amm_main_code,
CAH_LCM_LCTN_CODE_BOOK GSV_LCM_LCTN_CODE_BOOK,
CAST(NULL AS NUMBER) gsv_dr_cr_advce_srl,
0 gsv_dcmnt_srl_nmbr,
cah_trnsctn_with_indctr gsv_trnsctn_with_indctr,
cah_trnsctnr_code gsv_trnsctnr_code,
0 gsv_net_tds_amnt,
to_number(TO_CHAR(cah_cv_date ,'YYYY')) gsv_year,
to_number(TO_CHAR(cah_cv_date ,'MM')) gsv_mnth,
cah_cv_tmpry_nmbr gsv_tmpry_nmbr,
CAH_SRCE_INDCTR GSV_SRCE_INDCTR,
CAST(NULL AS VARCHAR2(50)) GSV_BILL_NMBR,
CAST(NULL AS DATE) gsv_bill_date,
cah_pay_rcve_name gsv_pay_rcve_name
FROM f_cv_hdr
WHERE CAH_FNCL_CLSRE_INDCTR = 'N'
AND cah_avlble_indctr = 'Y'
UNION ALL
SELECT
F_CV_HDR.ROWID "HDR_ID",
f_cv_dtl.ROWID "DTL_ID",
cah_dsm_trm_tr_code gsv_dsm_trm_tr_code,
cah_dsm_dcmnt_type gsv_dsm_dcmnt_type,
cah_cv_nmbr gsv_dcmnt_nmbr,
cah_lcm_lctn_code dsv_lcm_lctn_code,
cah_dsm_dcmnt_srs gsv_dsm_dcmnt_srs,
cah_cv_date gsv_dcmnt_date,
cad_sub_code_type gsv_sub_code_type,
DECODE(cad_dr_cr_indctr, 'C',0,'D',cad_amnt) gsv_amnt_dbtd,
cad_dr_cr_indctr gsv_dr_cr_indctr,
cad_amnt gsv_amnt,
DECODE(cad_dr_cr_indctr, 'D',0,'C',cad_amnt) gsv_amnt_crdtd,
cad_sub_code gsv_sub_code,
cad_rmrks gsv_rmrks,
cad_crs_rfrnce_type gsv_crs_rfrnce_type,
cad_crs_rfrnce_tr_code gsv_crs_rfrnce_tr_code,
CAD_CRS_RFRNCE_NMBR GSV_CRS_RFRNCE_NMBR,
CAST(NULL AS VARCHAR2(6)) GSV_FCM_CRNCY_CODE,
CAST(NULL AS NUMBER(6,3)) GSV_EXCHNGE_RATE,
CAST(NULL AS NUMBER(13,2)) gsv_frgn_crncy_amnt,
cad_date_from gsv_date_from,
cad_date_to gsv_date_to,
cad_rjh_nmbr gsv_rjh_nmbr,
cad_pjc_srs gsv_pjc_srs,
cad_pjc_nmbr gsv_pjc_nmbr,
cad_pjc_eqpmnt_srl gsv_pjc_eqptmnt_srl,
cad_pjc_expnse_head_code gsv_pjc_expnse_head_code,
cad_dpm_dprtmnt_code gsv_dpm_dprtmnt_code,
cad_amm_main_code gsv_amm_main_code,
cah_lcm_lctn_code_book gsv_lcm_lctn_code_book,
cad_dr_cr_advce_srl gsv_dr_cr_advce_srl,
cad_cv_srl_nmbr gsv_dcmnt_srl_nmbr,
cah_trnsctn_with_indctr gsv_trnsctn_with_indctr,
cah_trnsctnr_code gsv_trnsctnr_code,
0 gsv_net_tds_amnt,
to_number(TO_CHAR(cah_cv_date ,'YYYY')) gsv_year,
to_number(TO_CHAR(cah_cv_date ,'MM')) gsv_mnth,
cah_cv_tmpry_nmbr gsv_tmpry_nmbr,
cah_srce_indctr gsv_srce_indctr,
CAST(NULL AS VARCHAR2(50)) GSV_BILL_NMBR,
CAST(NULL AS DATE) GSV_BILL_DATE,
cah_pay_rcve_name gsv_pay_rcve_name
FROM f_cv_hdr,
F_CV_DTL
WHERE CAH_FNCL_CLSRE_INDCTR = 'N'
AND cah_avlble_indctr = 'Y'
AND cah_lcm_lctn_code = cad_cah_lcm_lctn_code
AND CAH_DSM_DCMNT_TYPE = CAD_CAH_DSM_DCMNT_TYPE
AND cah_cv_tmpry_nmbr = cad_cah_cv_tmpry_nmbr);
Giving below error:
==================================================
ORA-12054: cannot set the ON COMMIT refresh attribute for the materialized view
12054. 00000 - "cannot set the ON COMMIT refresh attribute for the materialized view"
*Cause: The materialized view did not satisfy conditions for refresh at
commit time.
*Action: Specify only valid options.
==================================================*Action: Specify only valid options.
-
Creation of fast refresh materialized view
Hi,
I am creating fast refreshable materialized view.At that time i am getting error message
ORA-12052: cannot fast refresh materialized view OPS$QDW.EMP_DEPT_MV
I created log's also on that tables(emp,dept)
Please Help me any body.
I am using oracle 8.1.7.4.0
below the scripts i created
CREATE MATERIALIZED VIEW LOG ON emp
tablesspace vijay_test
WITH ROWID
INCLUDING NEW VALUES
CREATE MATERIALIZED VIEW LOG ON DEPT
tablesspace vijay_test
WITH ROWID
INCLUDING NEW VALUES
CREATE MATERIALIZED VIEW emp_dept_mv
TABLESPACE vijay_test
BUILD IMMEDIATE
REFRESH FAST
ENABLE QUERY REWRITE
as
select e.ename,e.empno,e.deptno,d.loc from emp e, dept d
where e.deptno=d.deptnoIt will be possible to create a Materialised view with up to 20 tables, but you have to understand the restrictions on complex Materialised views with regards to fast refresh.
To help your understanding, refer to Materialized View Concepts and Architecture
<br>
Oracle Database FAQs
</br> -
ORA-12015: cannot create a fast refresh materialized view from a complex qu
BANNER
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
PL/SQL Release 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
TNS for Linux: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - ProductionI'm trying to create a fast refresh materialized view that uses a column of xmltype. The problem is I cannot create an MV log that accounts for the xmltype column. I tried excluding it and got the above error. Is there another way I can incrementally update a materialized view where I don't have to do a COMPLETE refresh or use FAST refresh?
CREATE TABLE "DAS_DESC"."AUTHORITY_TEST"
"NAID" NUMBER(20,0) NOT NULL ENABLE,
"AUTH_TYPE" VARCHAR2(40 BYTE),
"XML_DATA" "SYS"."XMLTYPE" ,
"TERM_NAME" VARCHAR2(4000 BYTE)
CREATE TABLE "DAS_DESC"."AUTH_ASSC_TEST"
"NAID" NUMBER(20,0),
"P_NAID" NUMBER(20,0),
"REL_TYPE" VARCHAR2(25 BYTE),
"XML_DATA" "SYS"."XMLTYPE"
CREATE
MATERIALIZED VIEW person_mv
AS
SELECT p.naid
, p.auth_type
, INSERTCHILDXML
p.xml_data -- Parent XML Column
, '//*[contains(local-name(), ''person'')]' --XPATH to Person
, 'nonPreferredHeadingArray' -- Value for new child element
( -- Sub query for injecting new variant person array
SELECT XMLELEMENT
"nonPreferredHeadingArray"
, XMLAGG -- Aggregator for Variant Persons Array
XMLELEMENT
"variantPersonName" -- Wrapper for each entry in array
, extract(a.xml_data,'*/*')
FROM auth_assc_table -- Link table
WHERE a.p_naid = p.naid
) AS XML_DATA
FROM authority p -- Parent table
WHERE p.auth_type = 'Person';The views are created fine and they work perfectly for what we need. The problem is the refresh when we edit the base tables. Ideally, it should take a couple seconds. Right now, it takes a couple minutes. XMLTYPE is one problem and the Complex Query exception is the other. If there is a work-around for fast refresh, please let me know. Greatly appreciated.jjmdb wrote:
I'm trying to create a fast refresh materialized view that uses a column of xmltype. The problem is I cannot create an MV log that accounts for the xmltype column. I tried excluding it and got the above error. Is there another way I can incrementally update a materialized view where I don't have to do a COMPLETE refresh or use FAST refresh? Besides XMLTYPE column, your MV definition has a subquery which prevents it from being fast refreshable.
I could not find any specific reference in documentation about restriction on XMLTYPE (or CLOB) columns but it seems logical that oracle will not be able to keep track of changes to binary data. What does DBMS_MVIEW.EXPLAIN_MVIEW generate for your MV definition? That should tell you which all conditions (for FAST REFRESH) your MV violates. Since you can not create a MV LOG to include XMLTYPE column, it will not be possible to create a FAST REFRESHABLE MV that includes the XMLTYPE column.
I am afraid there is not much you can do here unless you are prepared to change the way data is stored in your base tables. If you can store data in base tables using standard data types instead of binary/XML storage, you might be able to create a FAST REFRESHABLE MV. -
ORA-12015: cannot create a fast refresh materialized view from a complex
Hi All,
I am trying to create materialized view but i got a error ORA-12015: cannot create a fast refresh materialized view from a complex query.
Regards,
narayanaHi,
Please see if (Note: 179466.1 - Diagnosing ORA-12015 fast refresh materialized view / complex queries) helps.
Regards,
Hussein -
Fast Refresh Materialized view on a 'View'
Hi,
I am trying to create a materialized view with Refresh FAST option. This is based on a view. I am getting an error that there is no materialized view log on the table. But we cannot create a materialized view log on a view. Can you please let me know how to create a FAST REFRESH materialized view on a view.
Thanks!Thanks Justin! Actually, I have a remote database on which I want the copy of one of our tables. We have a view on this table on the source database with meaningful names. I have created materialized view logs on the underlying table. If I am able to create a MV on the view, then I need not write that extra step to code for meaningful names. I wanted to know if a fast refresh is possible on a view (There are materialized view logs on the underlying table)?
Thanks!
Maybe you are looking for
-
ITunes not importing Voice Memos from iPhone into library.
I have the settings on my iPhone to sync voice memos, yet when I sync with my iMac, it doesn't import the voice memos that I have in my voice memos list into my iTunes library for playing back outside of the Voice Memos app. What's wrong, and how do
-
Select query performance improvement - Index on EDIDC table
Hi Experts, I have a scenario where in I have to select data from the table EDIDC. The select query being used is given below. SELECT docnum direct mestyp mescod rcvprn sndprn upddat
-
How we can disable list item in apex.
Hi All, We are having an issue with list item, i have two list items has "country" and "state". when ever country is selected state is populated. We have done with select list with redirect option.But the problem when we have huge data it is taking t
-
Upgraded to iphoto 11 version 9.4.3, how can i get my old photos back?
I need help recovering my photos, have lots of photos of my late father.....Before going any further, I have clean my drive app....could i be able to recover my photos back? please let me know how and if possible please.....Thank you.
-
Has anyone been able to install cediag 1.3.2 (DIMM Management tools)?
Document ID: 205430 http://sunsolve.sun.com/search/document.do?assetkey=1-61-205430-1 I receive the below error when trying to pkgadd SUNWcest. I've tried it on 2 different boxes including a SB1K running Solaris 10. The file in question exists, p