(, CCY_TO_BASE_RATE = EXCHANGERATE.MID_RATE)
을 업데이트 문에 추가하려고하면 다음 오류가 표시됩니다.Oracle의 다중 열 업데이트
ORA-06550: line 8, column 21:
PL/SQL: ORA-00923: FROM keyword not found where expected
ORA-06550: line 6, column 1:
PL/SQL: SQL Statement ignored
그러나 (, CCY_TO_BASE_RATE = EXCHANGERATE.MID_RATE)
이 없으면 해당 문구가 유효합니다. 진술 내용이 유효하도록 내 코드를 수정하려면 어떻게해야합니까?
DECLARE
v_system_base_ccy NVARCHAR2(10);
BEGIN
v_system_base_ccy := dbo.Fn_parameter('SYSTEMBASECCY');
UPDATE tbl_dvcollateral A
SET coll_value_base = (SELECT coll_value * Nvl(EXCHANGERATE.mid_rate, 1),
ccy_to_base_rate = EXCHANGERATE.mid_rate
FROM (SELECT mid_rate,
from_ccy
FROM TABLE(
dbo.Fn_exchangeratetable(:V_AS_OF_DATE,
NULL,
v_system_base_ccy))
)EXCHANGERATE
WHERE A.ccy = EXCHANGERATE.from_ccy(+)),
last_updated_by = :V_LOGIN_ID,
last_updated_datetime = To_timestamp(To_char(systimestamp,
'YYYY-MM-DD HH24:MI:SS'),
'YYYY-MM-DD HH24:MI:SS')
WHERE as_of_date = :V_AS_OF_DATE
AND record_status_id = :V_AUTHORIZED;
END;
질문을 편집하고 'TBL_DVCOLLATERAL'테이블의 전체 정의를 포함하십시오. DBO.FN_EXCHANGERATETABLE이 반환하는 것에 대한 설명도 포함하십시오. 감사. –