- 締切済み
オラクル10G Pro*Cにおける「merge」について
初心者です。 Oracle10G、 Pro*Cで開発をしているのですが、下記のSQLでコンパイルエラーが出てしまいます。 どうやら、Pro*Cでは「merge」は構文解析されると利用できないみたいなんです。 構文解析しないで利用する方法を教えていただけないでしょうか? どうぞよろしくお願いいたします。 【コード】 EXEC SQL MERGE INTO MD_DZKI USING MK_SSZK ON (MD_DZKI.DZKI_SHN_CD = MK_SSZK.SSZK_SHN_CD) WHEN MATCHED THEN UPDATE SET MD_DZKI.DZKI_IG_KBN = MK_SSZK.SSZK_IG_KBN WHEN NOT MATCHED THEN INSERT (MD_DZKI.DZKI_BTEN_CD, MD_DZKI.DZKI_SHN_CD,MD_DZKI.DZKI_IG_KBN) VALUES (MK_SSZK.SSZK_BTEN_CD, MK_SSZK.SSZK_SHN_CD, MK_SSZK.SSZK_IG_KBN) WHERE MK_SSZK.SSZK_SHN_CD = 100; 【エラー】 構文エラー(行297、列15、ファイル/home/neccomts/BT_SI_BUILD/Z/BSRoot/src/compilesrc/harada003.pc): 行297、列15でエラーが発生しました。ファイル/home/neccomts/BT_SI_BUILD/Z/BSRoot/src/compilesrc/harad a003.pc EXEC SQL MERGE INTO MD_DZKI USING MK_SSZK ..............1 PCC-S-02201, 記号"MERGE"が見つかりました。 次のうちの1つが入るとき: for, register, at, close, commit, connect, declare, describe, execute, fetch, open, prepare, rollback, select, whenever, alter, audit, comment, create, delete, drop, get, grant, insert, lock, noaudit, rename, revoke, set, update, validate, arraylen, allocate, cache, call, collection, context, deallocate, enable, free, lob, object, savepoint, analyze, explain, truncate, 記号"alter," は続行のために"MERGE"に代わりました。 行0、列0でエラーが発生しました。ファイル/home/neccomts/BT_SI_BUILD/Z/BSRoot/src/compilesrc/harada00 3.pc PCC-F-02102, Cプリプロセッサ処理を実行中に致命エラーが発生しました。 *** エラー終了コード 1
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- nora1962
- ベストアンサー率60% (431/717)
Pro*c使ったことありませんが。 http://homepage3.nifty.com/owl_h0h0/unix/job/ORACLE/oracle/pro_c.html#SQL_EX の「動的 SQL 方法 1」は使えませんか。
お礼
ご回答ありがとうございました。 動的SQLを試したところ上手く作動しました。 素早いご回答に感謝致します。