• 締切済み

オラクル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

みんなの回答

  • nora1962
  • ベストアンサー率60% (431/717)
回答No.1

Pro*c使ったことありませんが。 http://homepage3.nifty.com/owl_h0h0/unix/job/ORACLE/oracle/pro_c.html#SQL_EX の「動的 SQL 方法 1」は使えませんか。

hharradda7
質問者

お礼

ご回答ありがとうございました。 動的SQLを試したところ上手く作動しました。 素早いご回答に感謝致します。

関連するQ&A