[pgsql-jp: 41154] 【ご質問】バイナリデータの扱いについて

Nakamoto, Hiroki nakamoto.hiroki @ jp.fujitsu.com
2012年 7月 25日 (水) 17:36:02 JST


中本と申します。

バイナリデータの扱いについて質問がございます。
昨日から立て続けで大変恐縮ですがよろしくお願い致します。

<質問内容>
・Oracle→Postgresへの移行に伴いバイナリデータ型がBlob→Byteaに変更。
 上記に伴い、JavaアプリのResultSetオブジェクトのgetterメソッドの修正
 は必要でしょうか?現行はgetBlobメソッドを使用。

 修正を行わない場合、以下のPSQLEXceptionエラーとなる。
 『PSQLException : 型 long :\xで不正な値』
 Bytea型の場合、16進数の先頭に\xが付くため、型変換の際に失敗している。

<調査実績>
・ネット情報では、Bytea型を使用する場合は、getBytes()またはgetBinaryStream()
 のみ使用可能。ラージオブジェクト機能を使用する場合は、Postgres SQL JDBCドライバ
 で提供されるLarge Objectクラスの使用またはgetBLOB()が使用可能と記載がありました。
・実際にgetBinaryStream()に変更するとエラーになりませんでした。

<その他>
 ・Postgres Ver:PPAS9.1
 ・開発意言語:Java

調査実績をみると、Javaアプリの修正が必要と判断しましたが、認識は誤ってないでしょうか?


以上 よろしくお願い致します


pgsql-jp メーリングリストの案内