• ベストアンサー

ストアド・プロシージャをバッチから起動させて実行する方法

使用DBはOracle9iです。 あるストアド・プロシージャがOracleデータベースに保存されているのですが、 これをバッチから起動させて実行するには、どのようにバッチ内容を記述すればよろしいでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

SQL*PLUSを起動して、ストアドプロシジャを呼び出せば良いかと。 例えば、次のようなSQLスクリプト(ファイル名:SCRIPTFILE.TXT)を用意して execute XXXX バッチ処理では sqlplus user/pass@dbname @SCRIPTFILE.TXT という感じでしょうか。

yosuke0303
質問者

補足

さっそくの返信ありがとうございます。 この方法はtxtファイルを介することで実現していますが、 txtファイルを作成せず、SQL*plusを起動して 直接ストアド・プロシージャを呼び出すことはできないのでしょうか?

その他の回答 (2)

回答No.3

>直接ストアド・プロシージャを呼び出すことは・・ お使いの環境(OS)が判りませんが、シェルが賢ければ、可能でしょう。 例えば、#2でかかれているよいうに、UNIX系OSでは、シェルが賢いので、ヒアドキュメントが使えます。 Windows環境だと、CMD.EXEには、ヒアドキュメントの機能がないので、難しいでしょう。 CMD.EXEとは別のシェルを用意するなどのしないといけません。

yosuke0303
質問者

お礼

返信ありがとうございます。 txtファイルを使う方法でも特に問題はないので k_o_r_o_c_h_a_nさんのおっしゃるとおりしたいと思います。 ありがとうございました。

回答No.2

Unix系ならヒアドキュメントを使ったシェルを作ることはできますが、Windowsの場合、k_o_r_o_c_h_a_nさんが回答されたようにスクリプトファイルを作成する方法になるかと思います。

yosuke0303
質問者

お礼

返信ありがとうございます。 なるほど。Windows系では簡単にはいかないのですね。 素直にk_o_r_o_c_h_a_nさんの方法でいこうと思います。

関連するQ&A