• ベストアンサー

PL/SQLをWindowsのBATファイルで実行するには

いつも参考にさせていただいております。 表題のとおり、WindowsServer2003上でBATファイルを起動したいのですが、うまくいきません。 BATファイルの中身 sqlplus USER_A/USER_A @DB_A @SQLPAT sqlplus USER_B/USER_B @DB_B @SQLPAT SQLPATファイルは、大体以下の感じで、2つのスキーマーで同じPL/SQLを実行します。 Declare ・ カーソルループ 更新 ・ ・ END; タスクにBATファイルを登録し実行すると 最初のPL/SQLは実行されますが、次のUSER_Bが実行されません。 どなたか詳しい方ご教授をお願いできませんでしょうか? オラクルのVerは9iです。よろしくお願い致します。

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

  • ベストアンサー
  • investyou
  • ベストアンサー率23% (13/56)
回答No.2

pl_sqlは予めDBに登録しておく。 CREATE OR REPLACE PROCEDURE pl_hoge() IS ・・・ BEGIN ・・・ END; / ■hoge.bat sqlplus user/pass@dbname @hoge.sql ■hoge.sql SET serveroutput ON; BEGIN pl_hoge(); END; / exit; 1さんはhoge.sql最後のexit;を指摘してます。 私もそれと疑いますが。

kotton28
質問者

お礼

ありがとうございます。 まさにそれで解決しました!

その他の回答 (1)

回答No.1

PL/SQLスクリプトの最後に、SQLPLUSを脱出するための EXITが必要かと思います。 現状は、最初のSQLPLUSを起動して、実行後に、プロンプトを 出して止まっているんじゃないでしょうか。 スクリプトの最後に、EXITなる一行が書かれていれば、 途中でエラーにならない限り、プロンプトで止まることは ないはずです。 エラーが出ると止まるので、それも考慮するなら、さらに、 ひと工夫必要かと思いますが。(本題からそれるので割愛します)

関連するQ&A