0
我正在一家使用Oracle 9i 9.2的公司工作,而且我無法升級。僅在'匹配時更新'時合併在Oracle 9i
合併只對匹配進行更新,而不對未匹配的插入進行更新,但在此版本中似乎不起作用。
我試圖做的事:
MERGE INTO CDLREFWORK.pricing d --table to insert to
USING V_REC S --table source
ON (D.item_id = S.item_id
and d.line_type = s.line_type
AND d.price_code =s.price_code)
WHEN MATCHED THEN UPDATE SET
d.APPLICATION_ID='CPMASI',
d.SYS_UPDATE_DATE=SYSDATE,
d.OPERATOR_ID=nvl(s.OPERATOR_ID, d.OPERATOR_ID),
d.LOCATION_ID=nvl(s.LOCATION_ID,d.LOCATION_ID),
d.ITEM_ID= nvl(s.ITEM_ID,d.ITEM_ID),
d.LINE_TYPE= nvl(s. LINE_TYPE, d.LINE_TYPE),
d.EXPIRATION_DATE=nvl(s.EXPIRATION_DATE,d.EXPIRATION_DATE),
d.PRICE_CODE= nvl(s.PRICE_CODE,d.PRICE_CODE),
d.TO_QTY=nvl(s.TO_QTY,d.TO_QTY),
d.PRICE= nvl(s.PRICE,d.PRICE),
d.CHARGE_CODE=nvl(s.CHARGE_CODE,d.CHARGE_CODE),
d.SOC=nvl(s.SOC,d.SOC),
d.COMMITMENT=nvl(s.COMMITMENT,d.COMMITMENT),
d.CAMBIAZO_CODE=nvl(s.CAMBIAZO_CODE,d.CAMBIAZO_CODE),
d.PPG_IND=nvl(s.PPG_IND,d.PPG_IND);
這得到:
SQL Error: ORA-00905: missing keyword
00905. 00000 - "missing keyword"
如果這是不可能在9i中,那麼我會怎麼做同等更新呢?
[9i的語法圖](https://docs.oracle.com/cd/B10501_01/server.920/a96540/statements_915a.htm)顯示您必須同時擁有'when matched'和'when not匹配「條款。 [在10gR1中更改](https://docs.oracle.com/cd/B12037_01/server.101/b10759/statements_9016.htm)(並在[新功能](https://docs.oracle。 com/cd/B12037_01/server.101/b10759/wnsql.htm)list).. –
你好Alex。請記住我不能升級 – Alexandra15
亞歷克斯。你贏了!! – Alexandra15