ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

★Oracle PL/SQL★コミュのMERGE文

  • mixiチェック
  • このエントリーをはてなブックマークに追加
はじめまして。

私がものを知らないだけですが、
最近SQLのMERGE文というものを知りました。

MERGE INTO <表名1 [エイリアス名]
USING 表名2 | 副問い合わせ [エイリアス名]
ON ( <結合条件> )
WHEN MATCHED THEN
UPDATE SET <カラム名> = < 値 >, …
WHEN NOT MATCHED THEN
INSERT [ (<カラム名>, … ) ]
VALUES ( <値> , … ) ;

この子を使えば世に無数にあるストアドの3割は行が削減できるのでは?

コメント(1)

multi table insertと言うものもあります。
結構便利です。

1.一度に複数データを作成できます。
2.一度に複数テーブルにデータを更新できます。

9iには変なバグがあった気がしますが、10gからは普通に使えます。

ちなみに、表名2は仮想表でも可。
画面の入力データが、既存データなら更新、新規データなら作成ってできますよ。

MERGE INTO [TABLE1] A
USING ( SELECT 'TEST' COL1,
1 NUM1
FROM DUAL) B
ON (A.COL1 = B.COL1
AND A.NUM1 = B.NUM1)
WHEN MATHCED THEN
UPDATE
SET A.[COLUMN] = [DATA],
A.[COLUMN] = [DATA]
WHEN NOT MATHCED THEN
INSERT(COL1,NUM1,.....)
VALUES(COL1,NUM1,.....);

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

★Oracle PL/SQL★ 更新情報

★Oracle PL/SQL★のメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。