ORA-12015: cannot create a fast refresh materialized view from a complex query [message #504823] |
Wed, 27 April 2011 18:32  |
 |
masha
Messages: 5 Registered: April 2011 Location: Canada
|
Junior Member |
|
|
I'm trying to create materialized view, successfully create logs for all the tables involved.
CREATE MATERIALIZED VIEW LOG ON tbJournal
WITH ROWID, SEQUENCE (tabid, companyid, storelocid, tabstatus, linetype)
INCLUDING NEW VALUES;
CREATE MATERIALIZED VIEW LOG ON TBTABS
WITH ROWID, SEQUENCE (TSTAMP, COMPANYID, NUMGUESTS, POSITIONID, STORELOCID, TABSSTATUS)
INCLUDING NEW VALUES;
CREATE MATERIALIZED VIEW LOG ON TBSTORESHISTORY
WITH ROWID, SEQUENCE (COMPANYID, ENDDAY, STORELOCID)
INCLUDING NEW VALUES;
CREATE MATERIALIZED VIEW WHGUESTNUM
BUILD DEFERRED
REFRESH FAST ON DEMAND
WITH ROWID USING DEFAULT LOCAL ROLLBACK SEGMENT DISABLE QUERY REWRITE AS
SELECT T.CompanyId ,
T.StoreLocid ,
T.PositionID ,
TRUNC(T.TStamp - NVL(S.EndDay / 24, 0)) TDate,
SUM(NumGuests) AS NumGuests ,
COUNT(*) AS NumChecks ,
COUNT(NumGuests) AS Dummy
FROM TBStoresHistory S,
tbTabs T
WHERE T.TabsStatus = 2
AND T.CompanyID = S.CompanyID
AND T.StoreLocID = S.StoreLocID
AND EXISTS (SELECT 1 FROM tbJournal J
WHERE j.tabstatus NOT BETWEEN -6 AND -4
AND j.linetype = 1
AND T.tabid = J.tabid
AND T.companyid = J.companyid
AND T.storelocid = J.storelocid)
GROUP BY T.Companyid,
T.StoreLocid ,
T.PositionID ,
TRUNC(T.TStamp - NVL(S.EndDay / 24, 0));
The result is ora-12015: cannot create a fast refresh materialized view from a complex query
It does work fine if I remove
AND EXISTS (SELECT 1 FROM tbJournal J
WHERE j.tabstatus NOT BETWEEN -6 AND -4
AND j.linetype = 1
AND T.tabid = J.tabid
AND T.companyid = J.companyid
AND T.storelocid = J.storelocid)
from the where clause
|
|
|
|
|
|
|
|
|
Re: ORA-12015: cannot create a fast refresh materialized view from a complex query [message #504975 is a reply to message #504972] |
Thu, 28 April 2011 10:50   |
 |
masha
Messages: 5 Registered: April 2011 Location: Canada
|
Junior Member |
|
|
If I use distinct the result of the select is correct but on creating the view I get the same error
CREATE MATERIALIZED VIEW WHGUESTNUM
BUILD DEFERRED
REFRESH FAST ON DEMAND
WITH ROWID USING DEFAULT LOCAL ROLLBACK SEGMENT DISABLE QUERY REWRITE AS
SELECT T.CompanyId ,
T.StoreLocid ,
T.PositionID ,
TRUNC(T.TStamp - NVL(S.EndDay / 24, 0)) TDate,
SUM(NumGuests) AS NumGuests ,
COUNT(*) AS NumChecks ,
COUNT(NumGuests) AS Dummy
FROM TBStoresHistory S,
tbTabs T,
(select distinct tabid,companyid, storelocid from tbJournal where tabstatus NOT BETWEEN -6 AND -4 AND linetype = 1 ) J
WHERE T.TabsStatus = 2
AND T.CompanyID = S.CompanyID
AND T.StoreLocID = S.StoreLocID
AND T.tabid = J.tabid
AND T.companyid = J.companyid
AND T.storelocid = J.storelocid
GROUP BY T.Companyid,
T.StoreLocid ,
T.PositionID ,
TRUNC(T.TStamp - NVL(S.EndDay / 24, 0));
|
|
|
|
|
|