Как исправить в жабе - PullRequest
       17

Как исправить в жабе

0 голосов
/ 19 февраля 2019

ORA-12015: невозможно создать быстрое обновление материализованного представления из сложного запроса

Я пытался комментировать сложные запросы и затем выполнять, но все равно он показывает ту же ошибку, что и упомянутаявыше.Может кто-нибудь подсказать, что еще кажется, что мне не хватает или не требуется.

CREATE MATERIALIZED VIEW CASH_ACTIVE_DEACTIVE__MVIEW_V1
LOGGING 
PCTFREE 10 
INITRANS 1 
/*STORAGE 
( 
  INITIAL 65536 
  NEXT 1048576 
  MINEXTENTS 1 
  MAXEXTENTS UNLIMITED 
  BUFFER_POOL DEFAULT 
) NOCOMPRESS 
NOCACHE 
NOPARALLEL 
USING INDEX */
REFRESH FAST START WITH SYSDATE 
NEXT SYSDATE + 1
USING DEFAULT LOCAL ROLLBACK SEGMENT 
AS 
SELECT ROWNUM                                    AS "SL.NO",
  cps.SERVICE_REQUEST_NUMBER                     AS "SERVICE REQUEST NO" ,
  cpsid.STOP_ID                                  AS "Stop id" 
FROM customer_profile cp
INNER JOIN CUSTOMER_PICKUP_POINT cpp
ON cpp.CUSTOMER_ID = cp.id
INNER JOIN CUSTOMER_PICKUP_STOPS cps
ON cpp.id = cps.CUSTOMER_PICKUP_POINT_ID
INNER JOIN CUSTOMER_PICKUP_STOPIDS cpsid
ON cps.id = cpsid.CUSTOMER_PICKUP_STOPS_ID
LEFT JOIN CUSTOMER_PICKUP_STOPIDS CPSID1
ON CPSID.PARENT_ID=CPSID1.ID
INNER JOIN MASTER_PINCODE MP
ON CPP.PICKUP_REGISTERED_PINCODE_ID=MP.ID
INNER JOIN master_city mc
ON mc.id= mp.city_id
INNER JOIN master_state mst
ON mst.ID = mc.STATE_ID
INNER JOIN MASTER_FREQUENCY MF
ON MF.ID = cps.FREQUENCY_ID
INNER JOIN master_service ms
ON ms.id = cps.SERVICE_ID
LEFT OUTER JOIN MASTER_AMOUNT_SLAB MAS
ON MAS.ID = cps.MASTER_AMOUNT_SLAB_ID
LEFT OUTER JOIN MASTER_RMSM MR1
ON MR1.ID =CP.CUSTOMER_RM_ID
LEFT OUTER JOIN MASTER_RMSM MR2
ON MR2.ID = CP.CUSOTMER_KCM_ID
INNER JOIN VENDOR_PRESENCE VP
ON VP.VENDOR_ID   =cps.VENDOR_ID
AND VP.PINCODE_ID = MP.ID
INNER JOIN VENDOR_SERVICES VS
ON VP.ID         = VS.VENDOR_PRESCENCE_ID
AND VS.SERVICE_ID=CPS.SERVICE_ID
LEFT JOIN MASTER_BRANCH MB
ON MB.ID = CPS.DEPOSITION_BRANCH_ID
INNER JOIN CUSTOMER_ADDRESS CA
ON CA.CUSTOMER_ID = CP.ID
INNER JOIN customer_linked_accounts acl
ON acl.id = cpsid.credit_acc_number
INNER JOIN customer_linked_accounts acl1
ON acl1.id = cpp.DEBIT_ACCOUNT_NUMBER
INNER JOIN VENDOR V
ON V.ID = CPS.VENDOR_ID
LEFT JOIN MASTER_PINCODE MP2
ON MP2.ID = CA.CUSTOMER_REGISTERED_PINCODE
LEFT JOIN MASTER_STATE MS2
ON MS2.ID = CA.CUSTOMER_REGISTERED_STATE
LEFT JOIN MASTER_CITY MC2
ON MC2.ID = CA.CUSTOMER_REGISTERED_CITY
LEFT JOIN MASTER_AMOUNT_SLAB MAS1
ON MAS1.ID          = CPS.VENDOR_LIMIT;

1 Ответ

0 голосов
/ 20 февраля 2019

Это было бы ROWNUM, я полагаю.

Общие ограничения для FAST REFRESH (https://docs.oracle.com/cd/E11882_01/server.112/e25554/basicmv.htm#i1007007) указывают, что

Материализованное представление не должно содержать ссылок на неповторяющиеся выражения, такие как SYSDATE и ROWNUM

в то время как у вас это есть, поэтому ... оно не будет работать. Перепишите его, чтобы избежать ROWNUM (и обратите внимание на остальные ограничения, применимые к FAST REFRESH).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...