- PR -

Oracle の MERGE 文について

1
投稿者投稿内容
ひろれい
ぬし
会議室デビュー日: 2006/03/02
投稿数: 486
お住まい・勤務地: 万博開催地
投稿日時: 2006-11-10 10:22
■Oracle10g

今、Oracle の MERGE 文を使って、同一表に、ある条件のデータが存在しなければ「INSERT」、存在した場合は「UPDATE」を行なおうとしています。

で、行き着いたのが、

  IF文のネスト地獄から抜け出せるMERGE文

なのですが、このサンプルの場合、emp 表に存在しない条件を指定した場合、

  MERGE文の使い方について

で言われている通り、結果を返さないので INSERT できないと思います。
じゃあ、どうすればいいのか、ということが上記スレでは分かりづらいため、再度お聞きしたいと思った次第です。

コード:
表A

KEY   DATA
1     ABC
2     ABCD
3     ABCDE


というような場合に、「KEY:4、DATA:ABCDEF」というデータを MERGE 文を使って「INSERT」出来るのでしょうか?
未記入
会議室デビュー日: 2006/11/10
投稿数: 12
投稿日時: 2006-11-10 14:05
DUALつかいなせ

MERGE INTO A
USING DUAL ON (KEY = 4)
WHEN MATCHED THEN
UPDATE
SET ・・・・・・
WHEN NOT MATCHED THEN
INSERT(・・・・・

ひろれい
ぬし
会議室デビュー日: 2006/03/02
投稿数: 486
お住まい・勤務地: 万博開催地
投稿日時: 2006-11-10 14:22
引用:

未記入さんの書き込み (2006-11-10 14:05) より:

DUALつかいなせ

MERGE INTO A
USING DUAL ON (KEY = 4)
WHEN MATCHED THEN
UPDATE
SET ・・・・・・
WHEN NOT MATCHED THEN
INSERT(・・・・・



未記入さん、ありがとうございます。目からうろこでした。
そういう使い方するんですね。

「DUAL 表でどうやって結合するんや」と悩んでおりました。
ただ単に私の頭が固いだけかもしれませんけど・・・orz

ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)