- - PR -
SQLPlusだと通るSQLがJavaだと通らない
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-02-06 21:26
j2sdk1.4.2.03+tomcat4.1.24+oracle9iの環境で構築しております。
JDBCでデータソースを使っています。 ORACLE SQLPlusで通るSQL文がjavaのプログラムを通して呼び出すと ORA-01009: 必須パラメータがありません。 というエラーがtomcatのlogに吐き出されます。 Statement stmt= conn.createStatement(); ResultSet rset = stmt.executeQuery(sql);←ここは通ります。 if(rset.next()) ←ここでデバッカーが止まる という状態になってしまいます。 またPreparedStatementでResultSetを取得しても 同じ状況になってしまいます。(この場合はtomcatのlogにnullとだけ吐き出される) また全部のSQLがおかしいわけではなく、 あるテーブルを使うとこのエラーが起きてしまいます。 原因がまったくわからず困っています。 どうかご教授お願いします。 | ||||
|
投稿日時: 2004-02-06 22:31
むしろ、このエラーコードからエラーの内容を調べてみたらいかがですか? | ||||
|
投稿日時: 2004-02-07 19:32
引用:
-------------------------------------------------------------------------------- むしろ、このエラーコードからエラーの内容を調べてみたらいかがですか? -------------------------------------------------------------------------------- 返信ありがとうございます。 OTNでエラーコードから内容を調べたのですが、読んで字のごとくといった感じのこと しか書かれていませんでした。 | ||||
|
投稿日時: 2004-02-07 20:23
まったくの思いつきですが。
問題のあるテーブルとその他のテーブルの所有者の違い、テーブルのオブジェクト権限、SQL*Plus で動作を確認した時のOracle ユーザが持つシステム権限を確認されてみてはいかがでしょうか。 ORA-01009 になるかどうかはわかりませんが、SQL*Plus で動作する SQL がアプリケーションサーバを経由すると動作しないというケースでは、権限の違いがかなり高い確率で疑わしいと思います。 [ メッセージ編集済み 編集者: Gio 編集日時 2004-02-07 20:26 ] | ||||
|
投稿日時: 2004-02-08 10:20
SQL*Plusで接続する際に用いているOracleのユーザと、JDBC接続で用いているユーザの 違いということでしょうか?確かにそこは盲点でした。ありうる話ですね。 | ||||
|
投稿日時: 2008-03-31 20:06
ORA-01009: 必須パラメータがありません。
というエラーが出る原因のひとつに、 「全角の空白文字」が、SQL文に含まれている時に発生する。 という事がありました。 ※参考までに… |
1