- ベストアンサー
ストアド・プロシージャをバッチから起動させて実行する方法
使用DBはOracle9iです。 あるストアド・プロシージャがOracleデータベースに保存されているのですが、 これをバッチから起動させて実行するには、どのようにバッチ内容を記述すればよろしいでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
SQL*PLUSを起動して、ストアドプロシジャを呼び出せば良いかと。 例えば、次のようなSQLスクリプト(ファイル名:SCRIPTFILE.TXT)を用意して execute XXXX バッチ処理では sqlplus user/pass@dbname @SCRIPTFILE.TXT という感じでしょうか。
その他の回答 (2)
- k_o_r_o_c_h_a_n
- ベストアンサー率55% (526/942)
回答No.3
>直接ストアド・プロシージャを呼び出すことは・・ お使いの環境(OS)が判りませんが、シェルが賢ければ、可能でしょう。 例えば、#2でかかれているよいうに、UNIX系OSでは、シェルが賢いので、ヒアドキュメントが使えます。 Windows環境だと、CMD.EXEには、ヒアドキュメントの機能がないので、難しいでしょう。 CMD.EXEとは別のシェルを用意するなどのしないといけません。
質問者
お礼
返信ありがとうございます。 txtファイルを使う方法でも特に問題はないので k_o_r_o_c_h_a_nさんのおっしゃるとおりしたいと思います。 ありがとうございました。
- ossan_hiro
- ベストアンサー率66% (88/132)
回答No.2
Unix系ならヒアドキュメントを使ったシェルを作ることはできますが、Windowsの場合、k_o_r_o_c_h_a_nさんが回答されたようにスクリプトファイルを作成する方法になるかと思います。
質問者
お礼
返信ありがとうございます。 なるほど。Windows系では簡単にはいかないのですね。 素直にk_o_r_o_c_h_a_nさんの方法でいこうと思います。
補足
さっそくの返信ありがとうございます。 この方法はtxtファイルを介することで実現していますが、 txtファイルを作成せず、SQL*plusを起動して 直接ストアド・プロシージャを呼び出すことはできないのでしょうか?