※ ChatGPTを利用し、要約された質問です(原文:COPYコマンドによるTEXT取り込みについて)
COPYコマンドによるTEXT取り込みについて
このQ&Aのポイント
PostgreSQLにおけるTEXT取り込みの方法について調査中です。
Oracleからの移行で、SQLLoaderからCOPYコマンドへの変更を検討しています。
しかし、行末に区切文字がある場合、COPYコマンドでは取り込みができないようです。回避策を検討中です。
PostgreSQLバージョン 9
OS:RedHat
現在Oracleからの移行でPostgreSQLにてTEXT取り込み処理を作成しています。
OracleではSQLLoaderを使用して取り込んでいましたが、
PostgreSQLではCOPYコマンドを使用すれば取り込みできるところまで調べました。
しかし、行末に区切文字があるためうまく取り込みできません。
【コマンド】
\copy hoge from 'hoge.txt' delimiters '|';
【行末に区切文字がある場合NG】
AAA|BBB|CCC|
ERROR: extra data after last expected column
CONTEXT: COPY hoge, line 1: "AAA|BBB|CCC|"
【行末に区切文字がない場合OK】
AAA|BBB|CCC
SQLLoaderでは行末の区切文字があっても取り込めましたが
COPYコマンドでは取り込めないようです。
回避策はないのでしょうか?
(取引先からのTEXTなので相談はして見ますがレイアウトの変更は難しいかもしれません。)
回避策がない場合、行末の区切文字を削除する方法はありますでしょうか?
行末だけの区切文字を削除する方法が分かりません。
(テキストは固定長でないため、桁数を指定した削除ができません)
行末区切文字削除の方法だけでも良いのでお願いします。
お礼
回答ありがとうございます。 やはりダミー列を入れるなど一手間加えないとダメなようですね。 対応方法を持ち帰って検討させていただきます。 テキストファイルが多いので案2は少し面倒ですね。 案1で検討させていただきます。