- - PR -
jdbc経由で、DBリンクテーブルのblob値を取得する方法
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 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