電子書籍の厳選無料作品が豊富!

はじめましてよろしくお願いします。

ORACLE10gを使用してMARGE文を作成しています。
そこで質問なのですが、下記はサイトで拾ったサンプル文なのですがUSING~で使用している
セレクト対象となるUSER_MASTER_IMPORTの変わりにサブクエリを使用したい場合はどうすればよいでしょうか?
MARGEしたいサブクエリのVIEWを作成すればよいのでしょうか?

<SAMPLE>
MERGE INTO USER_MASTER
USING USER_MASTER_IMPORT
ON ( USER_MASTER.USER_ID = USER_MASTER_IMPORT.USER_ID)
-- 既存レコードの更新
WHEN MATCHED THEN
UPDATE SET
USER_NAME = USER_MASTER_IMPORT.USER_NAME,
DEPT_NO = USER_MASTER_IMPORT.DEPT_NO,
MODIFIED_ON = SYSDATE
-- 新規レコードの作成
WHEN NOT MATCHED THEN
INSERT
( USER_ID, USER_NAME, DEPT_NO )
VALUES
( USER_MASTER_IMPORT.USER_ID,
USER_MASTER_IMPORT.USER_NAME || '(新人)',
USER_MASTER_IMPORT.DEPT_NO )


識者の方がいればご教示いただきたく存じます。
よろしくお願いいたします。

A 回答 (1件)

インラインビュー(サブクエリ)を作り別名を付ければ通りますよ。

    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

USING (SELECT * FROM DUAL) TEST_A
ON()~

の形で成功しました。
ありがとうございました。

お礼日時:2011/06/10 16:05

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す