[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 メーリングリストの案内