misc.log

日常茶飯事とお仕事と

Informatica PowerCenter、固定長ファイル読み込みと改行

少し詰まったので後々のためにヒントとメモを。

InformaticaのPowerCenterで、バイト数で切り出すタイプの区切り文字無しフラットファイルをデータソースにする場合、改行コードに注意しなければならないという話。

Windows環境だと改行コードはCR+LFですが、Unix/Linux環境では普通LFのみ。このとき、入力ファイルとして採用するファイルがどのOSで作られたかと、実際に動くPowerCenterがどのOSで動くかの組み合わせによっては改行コードの種類を視野に入れたデータ変換定義を作成する必要があります。

marketplace.informatica.com

ここにもかいてあるのですが、PowerCenterはファイルを読み込む際に改行コードも含めた長い1行のデータとして取り込みを行います。そこに対して指定されたバイトずつのデータを切り出すのですが、切り出し定義に改行コードは登場しません。改行コードは暗黙の裡に「PowerCenterが動く環境の標準改行コード」として1バイト、または2バイトをスキップしてくれるのです。これがやっかいで、問題の元になります。

Windows環境で作ったファイルをLinux環境で動くPowerCenterに読み込ませると、改行コードが異なるため切り出し位置がずれるんですね。これを考慮しないと取り込み時にエラーが起きます。

というわけで、たぶんまたはまると思うのでメモを残しておきます。


Learning Informatica PowerCenter 9.x

Learning Informatica PowerCenter 9.x