ここから本文です

動的SQLのINSERT文で複数レコードを1回のSQL発行で処理させたいので...

tea********さん

2008/10/613:00:16

動的SQLのINSERT文で複数レコードを1回のSQL発行で処理させたいのですが、うまくいきません。
実現可能かどうかもわからず困っています。どなたか教えてください。よろしくお願いします。

言語:COBOL
DB::ORA10g

下記のSQL文を使用して、動的SQLを実行させたいと考えています。
1レコードでのINSERTは成功しましたが、FORを付け複数レコードをINSERTしようとしたところ
エラー(ORA-900)が発生してしまいます。

<<例>>
01 SQL文 PIC X(1000).


01 レコード数 PIC S9(02) COMP.
01 ホスト変数 PIC X(04) OCCURS 10.



MOVE "0001" TO ホスト変数(1)
MOVE "0002" TO ホスト変数(2)
MOVE 2 TO レコード数

MOVE "FOR :レコード数
INSERT INTO テーブル名(項目名)
VALUES (:ホスト変数) " TO SQL文
EXEC SQL
PREPARE P1 FROM :SQL文
END-EXEC.

EXEC SQL
EXECUTE P1 USING :レコード数
,:ホスト変数
END-EXEC.

補足なぜ10gでora-900が発生するかは??です。確かに10gのエラーコードを検索してもヒットしません。以前はora8で稼働しており10gへ移行したという経緯はあります。
SQLPlusで確認したいのですが、複数レコードをINSERTする文法をSQLPlusでどう記述するかがわかりません。
そもそも動的SQLで複数レコードのINSERTが出来るのか出来ないのかの質問です。

閲覧数:
5,871
回答数:
2
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

r_m********さん

2008/10/613:28:08

ORA-900はSQL文そのものが間違っているか、コールしようとしているPL/SQLが存在しない場合に表示されるエラーです。

まず、発行しようとしているINSERT文をデバッグ等で表示させて、単体にてSQLPlusなどで実行してみてはいかがですか?

この回答は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜1件/1件中

hiy********さん

2008/10/613:56:54

10gにORA-900なんてエラー、あったっけ?

9i以前のOracleならともかく。

あわせて知りたい

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる