- PR -

setXXXメソッドでバインド変数がセットされない

1
投稿者投稿内容
ハツキタツミ
大ベテラン
会議室デビュー日: 2005/05/24
投稿数: 108
投稿日時: 2005-06-29 11:25
お世話になります。

OS:VineLinux 3.0
APサーバ:Tomcat 5.0.28
JVM:1.4.2
Oracle:8.1.7
JDBC:10.10.1.0.2.0(Thin版)

上記の環境にてJDBCを使用して、Oracleのデータベースリンクから結果を取得する際に、
ORA-01008: not all variables bound
のエラーが発生します。

SELECT COUNT(*) FROM HOGE@DBLINK WHERE CODE=?

とSQLを発行し、
PreparedStatement#setString(1, "TEST")
とした場合は正しく結果が取得できますが、

SELECT ( SELECT COUNT(*) FROM HOGE@DBLINK WHERE CODE=? ) FROM DUAL

などとした場合(実際には複数の結果を、1つのクエリで取得したいのですが)ORA-01008のエラーが発生します。

Oracleのホームページを検索すると、
http://otndnld.oracle.co.jp/document/products/oracle10g/101/generic/B13723-07/ch03.htm
のBug#2245502の現象に近い感じもしますが、DBのバージョンが違うので、これは当てはまらないかと思います。

このエラーを回避して、DBリンクでバインド変数を使用するには、どうしたらよいでしょうか?

[ メッセージ編集済み 編集者: ハツキタツミ 編集日時 2005-06-29 12:07 ]
未記入
常連さん
会議室デビュー日: 2005/05/24
投稿数: 48
投稿日時: 2005-06-29 11:47
どもども

もう少し情報が欲しいのでいくつか質問させて下さい

リンク先のDBのバージョンも8.1.7ですか?
後、VIEWを使って同様の事やっても再現しますか?
ハツキタツミ
大ベテラン
会議室デビュー日: 2005/05/24
投稿数: 108
投稿日時: 2005-06-29 11:54
こんにちわ。

>リンク先のDBのバージョンも8.1.7ですか?
はい。同一サーバ内の別DBです。

>後、VIEWを使って同様の事やっても再現しますか?
CREATE VIEW HOGE AS SELECT * FROM HOGE@DBLINK
を実行し、ビューを作成し
SELECT ( SELECT COUNT(*) FROM HOGE WHERE CODE=? ) FROM DUAL
とした場合でも同様です。
1

スキルアップ/キャリアアップ(JOB@IT)