ORA-01779: cannot modify a column which maps to a non key-preserved table

From: <radhika.penagonda_at_gmail.com>
Date: 5 Dec 2006 08:36:27 -0800
Message-ID: <1165336587.743619.197360_at_16g2000cwy.googlegroups.com>



Hi,

This is the query that I have:
[Quoted] UPDATE /*+ BYPASS_UJVC */ ( SELECT FCT_SEC_EXPOSURES.n_sec_exp_amt AS T0 , CASE WHEN ((CASE WHEN

DIM_BASEL_BANK_ROLE.F_LATEST_RECORD_INDICATOR = 'Y' THEN
DIM_BASEL_BANK_ROLE.V_BASEL_BANK_ROLE_ID END='ORG')) THEN 0  WHEN
((CASE WHEN DIM_BASEL_BANK_ROLE.F_LATEST_RECORD_INDICATOR = 'Y' THEN
DIM_BASEL_BANK_ROLE.V_BASEL_BANK_ROLE_ID END='INV')) THEN 1  ELSE 2 END
AS COND0 ,CASE WHEN 1 = 1 THEN FCT_SEC_EXPOSURES.n_outstanding_amount END + (CASE WHEN 1 = 1 THEN FCT_SEC_EXPOSURES.n_unused_commitment END * CASE WHEN 1 = 1 THEN FCT_SEC_EXPOSURES.n_sec_exp_ccf END ) AS
BP0,CASE WHEN 1 = 1 THEN FCT_SEC_EXPOSURES.n_historical_acq_cost END  -
CASE WHEN 1 = 1 THEN FCT_SEC_EXPOSURES.n_amortization_amount END  +
CASE WHEN 1 = 1 THEN FCT_SEC_EXPOSURES.n_accretion_amt END  AS
BP1,FCT_SEC_EXPOSURES.n_sec_exp_amt AS BP2 FROM FCT_SEC_EXPOSURES INNER JOIN DIM_SEC_FACILITY_TYPE ON
FCT_SEC_EXPOSURES.N_SEC_FACILITY_TYPE_SKEY =
DIM_SEC_FACILITY_TYPE.N_SEC_FACILITY_TYPE_SKEY   AND
DIM_SEC_FACILITY_TYPE.F_LATEST_RECORD_INDICATOR = 'Y'   INNER JOIN
DIM_BASEL_METHODOLOGY ON FCT_SEC_EXPOSURES.N_BASEL_METHOD_SKEY =
DIM_BASEL_METHODOLOGY.N_BASEL_METHOD_SKEY   AND
DIM_BASEL_METHODOLOGY.F_LATEST_RECORD_INDICATOR = 'Y'   INNER JOIN
DIM_RUN ON FCT_SEC_EXPOSURES.V_RUN_ID = DIM_RUN.V_RUN_ID   INNER JOIN
DIM_TIME_DATE ON FCT_SEC_EXPOSURES.FIC_MIS_DATE =
DIM_TIME_DATE.FIC_MIS_DATE   INNER JOIN (  FCT_TRANCHE   LEFT OUTER
JOIN DIM_BASEL_CREDIT_RATING ON
DIM_BASEL_CREDIT_RATING.N_BASEL_RATING = FCT_TRANCHE.N_BASEL_RATING INNER JOIN ( FCT_SECURITIZATION_POOL INNER JOIN DIM_BASEL_BANK_ROLE
ON FCT_SECURITIZATION_POOL.N_BASEL_BANK_ROLE_SKEY =
DIM_BASEL_BANK_ROLE.N_BASEL_BANK_ROLE_SKEY   AND
DIM_BASEL_BANK_ROLE.F_LATEST_RECORD_INDICATOR = 'Y' )   ON
FCT_SECURITIZATION_POOL.FIC_MIS_DATE = FCT_TRANCHE.FIC_MIS_DATE   AND
FCT_SECURITIZATION_POOL.V_RUN_ID = FCT_TRANCHE.V_RUN_ID   AND
FCT_SECURITIZATION_POOL.N_SEC_POOL_SKEY = FCT_TRANCHE.N_SEC_POOL_SKEY)  ON FCT_SEC_EXPOSURES.FIC_MIS_DATE = FCT_TRANCHE.FIC_MIS_DATE AND
FCT_TRANCHE.V_RUN_ID = FCT_SEC_EXPOSURES.V_RUN_ID   AND
FCT_SEC_EXPOSURES.V_TRANCHE_ID = FCT_TRANCHE.V_TRANCHE_ID WHERE
DIM_RUN.V_RUN_ID = '1144442518710' AND 1=1 AND
DIM_TIME_DATE.FIC_MIS_DATE=TO_DATE('20061204','YYYYMMDD') AND 1=1) SET
T0 = CASE WHEN COND0 = 0 THEN BP0 WHEN COND0 = 1 THEN BP1 ELSE BP2 END And I am getting the Error:

ORA-01779: cannot modify a column which maps to a non key-preserved table

Even when there no records to update, this error occurs.

Could someone explain what this may be due to..in particular Received on Tue Dec 05 2006 - 17:36:27 CET

Original text of this message