- ベストアンサー
ストアドにしたらエラーになる
10gを使ってます。 1.ワークテーブル作成 2.そのテーブルにインサート の一連のスクリプトをsql/plusかなんかでやると問題ないのに それをストアドにしたら2.の時にテーブルが存在しないと言うことで コンパイルエラーになってしまいます。 こうゆう場合どうすればコンパイルエラーを回避できるのでしょうか? 1.と2.を分割して二つのストアドにしないといけないのでしょうか。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちわ。 > コンパイルエラーになってしまいます PL/SQL のコンパイル時に「1.」で作成しているテーブルが存在しないために エラーになっています。 「2.」をExecute immediate を使って動的SQL にする事でコンパイルエラーを 回避できます。 後は、#1 の方の言うように、事前にテーブルを作成しておくかですね。
その他の回答 (1)
- nora1962
- ベストアンサー率60% (431/717)
回答No.1
ストアド内でワークテーブルをCREATEするのではなく、事前に CREATE GLOBAL TEMPORARY TABLE でグローバル一時テーブルを作成し、そこにインサートするようにできませんか。
質問者
補足
それはストアドを二つに分割って事ですよね なるべく一つのストアドで解決したいです。
補足
やってみます。 ありがとうございます。