私は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)は、「一致した場合」と「一致しない」の両方を持つ必要があることを示していますマッチした節。 [10gR1で変更された](https://docs.oracle.com/cd/B12037_01/server.101/b10759/statements_9016.htm)([新機能](https://docs.oracle.com)に記載されています。 com/cd/B12037_01/server.101/b10759/wnsql.htm).. –
こんにちは。私はアップグレードできないことを覚えておいてください – Alexandra15
アレックス。あなたが勝つ! – Alexandra15