PostgreSQLのBIT型について

Highlighted
Four Stars

PostgreSQLのBIT型について

takeru758401です。
初めての投稿です。

どうぞよろしくお願いいたします。

 

さて、標記の件について質問があります。

 

現在、PostgreSQL 9.0.3から PostgreSQL 10.7にあるテーブルのデータを移行しようとしておりますが、失敗いたします。

 

まったく同じ構造(pgAdminからSQLをコピー&ペーストして作成した)のテーブルなのですが、
どうもカラムにBIT型(データ長1)があるために失敗するようです。

エラーメッセージは以下の通りです。

 

INSERT INTO ... はアボートしました: ERROR: column "loginfg" is of type bit but expression is of type bytea

caused by: ERROR: column "loginfg" is of type bit but expression is of type bytea
ヒント: You will need to rewrite or cast the expression.


このエラー文を見ると、確かに対象のカラムのデータは"?"になっていました。

またスキーマの型を見ると、DB型はどちらもBIT、Talendの型はどちらもbyte[]になっていました。


tConvertなどで対応できるのでしょうか?
それともmappingファイルで対応が必要でしょうか?
ご教示いただけると幸いです。

 

どうぞよろしくお願いいたします。

 

 

 

Highlighted
Moderator

Re: PostgreSQLのBIT型について

@takeru758401 さん

 

スキーマの型はデフォルトで取得されたものでしょうか?手動でも変更できるので、もしめぼしい型に変更しても同じようにエラーとなるのであればStudioが対応していないのではないかと思います。

 

https://github.com/pgjdbc/pgjdbc/issues/892

同一の問題かわかりませんが、こちらにもそれらしい議論がされていますね。もしJDBCドライバーの問題であればtJDBCConnectionなどで別のドライバーを試してみるのも良いかもしれません。

 

その他に出来ることとしては、商用版であればサポートに問い合わせ、Open Studioであれば以下のURLに不具合などとして登録などもありますが、すぐの解決は難しいと思うので場合によっては回避策としてコンバートするRoutineなどを自作してみる必要などがあるかもしれません。

https://jira.talendforge.org/

 

2019 GARTNER MAGIC QUADRANT FOR DATA INTEGRATION TOOL

Talend named a Leader.

Get your copy

OPEN STUDIO FOR DATA INTEGRATION

Kickstart your first data integration and ETL projects.

Download now