概要
- PCデータを物理ファイルへセットする方法は、Client Accessのデータ転送(アップロード)機能を利用するという手もありますが、AS400にはIFS(統合ファイルシステム)なるファイル共有があります。そこへPC上のCSVファイルを格納して、事前準備した物理ファイルへ複写する方法を紹介します。
作業手順
(1) 取込用物理ファイルを作成
- TIGER/DDSSRC TESTPF01 (TIGERDB/TESTPF01へ作成)
A R RECW@00 TEXT(' CSV 格納用 ワークファイル ') A* A W@0001 4A COLHDG('CODE') A ALWNULL A W@0002 20O COLHDG('NAME') A ALWNULL A W@0003 20A COLHDG('YOMI') A ALWNULL A W@0004 20O COLHDG('ADDRESS') A ALWNULL A** キー 情報 --------------------------- ** A K W@0001
※項目キーワードへ、ALWNULLを追記することで、NULLデータの格納が許されるようになります。
(2) CSVデータをIFS上へアップ
※ 私は「/TEMP/TESTPF01.csv」 へ作成しました。テキストの中身は、こんな感じ。
0001,佐藤さん,サトウサン,福島県 0002,鈴木㈱,スズキカブシキガイシャ,新潟県 0003,田中君,タナカクン,石川県 0004,JONNY,,
(3) CPYFRMIMPFコマンドにて、CSVデータをPFへ格納
CPYFRMIMPF FROMSTMF('/TEMP/TESTPF01.CSV') TOFILE(TIGERDB/TESTPF01) MBROPT(*REPLACE) FROMCCSID(942) RCDDLM(*CRLF) ERRRCDOPT(*REPLACE)
- RUNQRY QRYFILE(TIGERDB/TESTPF01)
※㈱は、正常に変換されず。
※NULLのフィールドは、RUNQRYでは、「-」と表記されています。
RPGLEによる NULLありレコードの操作
・RPGLEで、NULLが格納されているテーブルを読む場合、H仕様書に下記の内容を記入しておけばOKです。 この記述がないと、NULLを含むレコードを読んだ際に、「マッピングエラー」となってしまいます。
HALWNULL(*USRCTL)
IFS上のファイルを削除する命令
RMVLNK OBJLNK('/TEMP/TESTPF01.CSV')