AS/400 データ記述仕様書より
2.4.44 TRNTBL(変換テーブル)- 論理ファイルのみ
これはフィールド・レベルのキーワードで、PFILE
キーワードまたは JFILE
キーワードに指定した物理ファイルとプログラムとの間でこのフィールドの受渡しが行われる際に使用される変換テーブルを指定するために使用します。このフィールドは文字フィールドでなければならず、その桁数を論理ファイルで定義し直すことはできません。TRNTBL
キーワードとともに CONCAT キーワードと指定する場合には、CONCAT
キーワードで指定するフィールドは、すべて文字フィールドでなければなりません。
キーワードの形式は次のとおりです。
TRNTBL([library-name/]translation-table-name)
translation-table-name は必須パラメーター値であり、library-name
は任意指定です。ライブラリー名を指定しなかった場合には、OS/400
プログラムにより、ファイル作成時に有効なライブラリー・リスト
(*LIBL) が使用されます。
このキーワードは、入力専用(38 桁目に I
が指定されている)フィールドまたは非入出力(38
桁目にN
が指定されている)フィールドである文字フィールドに対してだけ有効です。
16 進数フィールド(35 桁目が H)については、TRNTBL
キーワードは指定できません。また、日付、時刻、またはタイムスタンプ・フィールド
(35 桁目が L、T、または Z) に TRNTBL
キーワードを指定してはなりません。
同一論理ファイル内の異なるフィールドについて、最高 99 個の異なる変換テーブルを指定することができます。
変換は、物理ファイルから該当のフィールドを読み取る時点で行われます。したがって、論理ファイルで指定されているすべての機能(キー・フィールドの順序付け、選択/除外処理、またはレコードの連結など)は、変換後のデータに基づいて行われます。
TRNTBL
キーワードは、論理ファイルから戻されるレコード内のデータを変更します。ALTSEQ
キーワードは、論理ファイルから戻されるレコードの順序だけを変更します。
TRNTBL キーワードは、次の点を除いて、CHRID
キーワードとよく似ています。
- TRNTBL
キーワードの場合は、使用する変換テーブルの名前を指定しますが、
CHRID キーワードの場合はこれは指定しません。
- TRNTBL
キーワードの場合は、プログラムが論理ファイルを読み取る時点で、プログラムへの入力としてのデータを変更します。CHRID
キーワードの場合は、特定の操作に表示または印刷するデータを変更します。プログラムが更新後のデータを使用する(たとえば
IF-THEN-ELSE ステートメントや、COBOL の SORT
ステートメントなどで)場合には、TRNTBL
キーワードを使用します。プログラムが論理ファイルからのデータだけを処理する場合には、プログラムで使用する表示装置ファイルまたは印刷装置ファイルに
CHRID キーワードを指定する必要はありません。
論理ファイル作成 (CRTLF) コマンドで FILETYPE(*SRC)
を指定した場合には、 TRNTBL キーワードは無効です。
注:
1. TRNTBL
キーワードを指定する場合には、論理ファイルの該当フィールドの桁数は、物理ファイルの対応するフィールドの桁数と同じでなければなりません。
2.
ファイルの作成時点で、ユーザーは、所要の変換テーブルについての使用権限を持っていなければなりません。変換テーブルは、テーブルの作成
(CRTTBL)コマンドを用いて作成します。
3. TRNTBL
キーワードで指定する変換テーブルは、論理ファイルの作成時点でだけ参照されます。したがって、変換テーブルに対する変更は、論理ファイルを再作成するまでは、論理ファイルに影響を及ぼすことはありません。 |