Re: ORA-01779: cannot modify a column which maps to a non key-preserved table
Date: 5 Dec 2006 10:33:49 -0800
Message-ID: <1165343629.429915.190870_at_j72g2000cwa.googlegroups.com>
radhika.penagonda_at_gmail.com wrote:
> Hi,
>
> This is the query that I have:
> 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
You didn't look up the error in the error messages manual, didn't you?
You just dumped it here!
Because otherwise you already would have got your explanation.
Please *ALWAYS* look up error messages *PRIOR* to just *DUMPING* them. This is a volunteer forum, we don't do *your* work!
-- Sybrand Bakker Senior Oracle DBAReceived on Tue Dec 05 2006 - 19:33:49 CET