2009年3月5日木曜日

Merge文

OracleのMergeは、あまり使わないせいで
すぐ構文を忘れてしまいます。
(昨日の勉強会でも質問されて回答できませんでした。。。)

なので、備忘録。
Merge Into 対象テーブルA A
using 対象テーブルB B
 on ( A.結合項目 = B.結合項目)
when mached then
 update set
  A.更新カラム = B.更新元カラム
 when not mached then
  insert (
   更新カラム
  )values (
   B.更新元カラム
);

これで、以下の処理が上記1個のSQLでできます。
カーソル作る
ループ(フェッチ)
存在チェック
   あったらUPDATE
  なければINSERT

0 件のコメント:

コメントを投稿