![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
お世話になります。
oracleのMERGE文で
アンマッチ時のインサート文にSELECTで
引いた値を入れたいのですが、
ORA-00926エラーになってしまいます。
MERGEのインサート文にSELECTは使えないのでしょうか?
尚、INSERT文単体ではエラーなく挿入できます。
以上、よろしくお願いいたします。
以下、SQLです。
MERGE INTO USER_MASTER UM
USING USER_MASTER_IMPORT UI
ON ( UM.USER_ID = UI.USER_ID)
-- 既存レコードの更新
WHEN MATCHED THEN
UPDATE SET
USER_NAME = USER_MASTER_IMPORT.USER_NAME
-- 新規レコードの作成
WHEN NOT MATCHED THEN
INSERT
( USER_ID, USER_NAME, NO ,SHOZOKU_NAME)
SELECT
UI.USER_ID, UI.USER_NAME, UI.NO, SH.SHOZOKU_NAME
FROM
USER_MASTER_IMPORT UI
LEFT JOIN SHOZOKU SH ON(UI.USER_ID = SH.USER_ID)
No.1ベストアンサー
- 回答日時:
USINGで指定するマージ対象をテーブルでなく、インラインビューにすれば、
アンマッチの際にインサートする項目は全て揃っているハズです。
MERGE INTO USER_MASTER UM
USING
(
SELECT UI.USER_ID, UI.USER_NAME, UI.NO, SH.SHOZOKU_NAME
FROM USER_MASTER_IMPORT UI
LEFT JOIN SHOZOKU SH
ON (UI.USER_ID = SH.USER_ID
) UI
ON ( UM.USER_ID = UI.USER_ID)
-- 既存レコードの更新
WHEN MATCHED THEN
UPDATE SET
USER_NAME = USER_MASTER_IMPORT.USER_NAME
-- 新規レコードの作成
WHEN NOT MATCHED THEN
INSERT ( USER_ID, USER_NAME, NO ,SHOZOKU_NAME)
VALUES ( UI.USER_ID, UI.USER_NAME, UI.NO, UI.SHOZOKU_NAME)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript Json のキーと値の出力の違いについて 2 2022/06/14 20:22
- PHP php ログイン 1 2022/11/01 00:24
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
- その他(プログラミング・Web制作) Pythonで会員サイトの自動ログイン ID Nameがない 1 2022/12/16 02:09
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- UNIX・Linux コマンドプロンプトでのユーザーのサインイン時間設定について 1 2022/08/09 09:09
- Windows 10 コマンドプロンプトでのユーザーのサインイン時間設定について 1 2022/08/09 20:43
- その他(プログラミング・Web制作) python文字化けエラーが発生しているようです 3 2022/04/13 19:41
- Google 翻訳 【大至急】Hellotalk公式からメール 2 2022/04/17 17:24
- その他(データベース) AWSのcloud9で「 ls -l ~/.ssh/」のコマンドで公開鍵、 秘密鍵を知ろうとすると「 1 2023/07/09 02:10
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
単一グループのグループ関数で...
-
【PL/SQL】FROM区に変数を使う方法
-
トランザクションログを出力せ...
-
SQL*Loader Append
-
group byの並び順を変えるだけ...
-
updateで複数行更新したい
-
AccessのSQL文で1件のみヒット...
-
アクセスのレポートでレコード...
-
データ
-
SELECT FOR UPDATE で該当レコ...
-
where句中のtrim関数について
-
グループ関数の結果について
-
「数字で始まらない」ものを抽...
-
レコードの更新履歴について
-
値が入っていない日付型の項目...
-
負荷試験の後重くなります。。。
-
1レコード全てを改行なしで表...
-
引数によってwhere句を切り替え...
-
MERGE文について
-
ACCESS レコードの並び順について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
単一グループのグループ関数で...
-
【PL/SQL】FROM区に変数を使う方法
-
AccessのSQL文で1件のみヒット...
-
SELECT FOR UPDATE で該当レコ...
-
where句中のtrim関数について
-
group byの並び順を変えるだけ...
-
アクセスのレポートでレコード...
-
SQLで条件にヒットしたレコード...
-
ORMについて
-
トランザクションログを出力せ...
-
データ
-
SQL*Loader Append
-
「数字で始まらない」ものを抽...
-
引数によってwhere句を切り替え...
-
BLOB型項目をSQLの検索条件に指...
-
osqleditについて
-
ACCESS レコードの並び順について
-
大量レコードをTRUNCATEせずに...
-
【SQL】違うフィールド同士の集...
-
updateで複数行更新したい
おすすめ情報