- PR -

jdbc経由で、DBリンクテーブルのblob値を取得する方法

1
投稿者投稿内容
はむねこ
会議室デビュー日: 2007/11/28
投稿数: 9
投稿日時: 2008-10-07 14:32
いつもお世話になります。

dbリンク(@dblink)先のtableAに、blobBというblob型の項目があり、
SELECTしたい

SELECT code,bloB FROM tableA@dblink where code = 10

のですが、jdbc経由で接続すると、
『ORA-22992: リモート表から選択されたLOBロケータは使用できません。』
が発生し、selectに失敗します。
cse等で上記sqlを実行した場合は問題ありません。

[環境]
Oracle 10.2.0.3.0

↓こちらのページ
http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/appdev.102/B19247-01/adlob_data_interface.htm#sthref968
によると、statementにdefineColumnTypeでカラムタイプを定義することで、
使用可能になるようでしたので、以下のようなプログラムを記述しましたが、
全く同じエラー(ORA-22992)となり、改善されません。
(上記サンプルと違い、条件部分にはプリペアを使用しています。
必要な箇所を抜き出して記述しています。
情報不足であればご指摘ください。)

String strSQL="";
strSQL = "SELECT code,bloB FROM tableA@dblink where code = ?";

ResultSet rs = null;
OraclePreparedStatement ops = null;
ops = (OraclePreparedStatement) cn.prepareStatement(strSQL);
ops.defineColumnType(2, oracle.jdbc.OracleTypes.RAW);
ops.setInt(1,10);
rs = ops.executeQuery();

executeQuery()で、
java.sql.SQLException:
ORA-22992: リモート表から選択されたLOBロケータは使用できません。
となります。

どなたかヒントを頂けないでしょうか、
よろしくお願い致します。


[ メッセージ編集済み 編集者: はむねこ 編集日時 2008-10-10 15:18 ]
1

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