MERGE文は、指定した結合条件を満たす行が存在すればUPDATE、存在しなければINSERTを行います。
MERGE INTO [target-schema.]target-table
USING {[source-schema.]source-table|subquery}
ON (condition [,condition...])
WHEN MATCHED THEN update-clause
WHEN NOT MATCHED THEN insert-clause
挿入または更新する表のスキーマ
挿入または更新する表
挿入または更新する行を取得する表のスキーマ
条件
UPDATE文
INSERT文
OracleデータベースでMERGE文を実行するのに必要な権限を次に示す。
MERGE INTO forex USING DUAL ON (currency_pair = 'USDJPY')
WHEN MATCHED THEN
UPDATE SET rate = 89.95
WHEN NOT MATCHED THEN
INSERT (currency_pair, rate) VALUES ('USDJPY', 89.95);
DML (Data manipulation language)
行を挿入または更新する列に対して整合性制約が設定されていることがある。この場合、整合性制約に違反する値を挿入または更新しようとすると、エラーが発生する。
行1でエラーが発生しました。:
ORA-02290: チェック制約(XXXX.AGECHECK)に違反しました