- - PR -
JDBCでPL/SQLの標準出力を得るには
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-06-20 16:52
SQL*PlusでPL/SQLを実行する場合は
set serveroutput on; を実行することによりDBMS_OUTPUT.PUT_LINEの結果を 表示することが出来ますが、JDBCでJavaアプリケーションから 呼び出す場合は、前述の"set serveroutput on;"の方法が 分かりません。 JavaからPL/SQLを呼ぶ場合のデバッグ出力の仕方を ご存知の方がおられましたらご教示お願いします。 |
|
投稿日時: 2005-06-20 17:10
JDBC を介してデータベースにアクセスする場合、PL/SQL は無関係です。
おそらく PL/SQL のコマンドは使えないかと・・・。 |
|
投稿日時: 2005-06-20 17:57
やはりそうですか、CallableStatement#executeの引数に
渡してみると java.sql.SQLException: ORA-00922: missing or invalid option となりました。だめっぽいですね。 ありがとうございました。 |
|
投稿日時: 2005-06-20 20:06
どこにデバッグログを出力させたいかによるのですが、例えばutl_fileパッケージを使うとDBサーバ上のファイルに出力させることができます。
ちなみに set serveroutput on はSQL*Plusのコマンドです。 また、DBMS_OUTPUT.PUT_LINEの結果は同一セッションからDBMS_OUTPUT.GET_LINEで取得することができます。つまりDBMS_OUTPUT.GET_LINE自体をJDBC経由で実行する必要があるので、ちょっと面倒かもしれません。 |
|
投稿日時: 2005-06-20 23:58
そうですか、GET_LINEを実行すればよいのですね。
ただし、面倒なので普通にSQL*Plusから実行するのが 良さそうですね。 一応、明日試してみようと思います。ありがとうございました。 |
|
投稿日時: 2005-06-21 22:54
GET_LINEは指定したVARCHAR2変数にPUT_LINEした行を取り込むという物で、
デバッグに使うにはやはり回りくどいですね。JAVAから呼び出すこと自体が 目的ではないので、素直にSQL*Plusで実行します。 |
1