7.120.1 SUBSTRING のパラメータ

FIELD

INTO_FIELD

FIELD

文字列の抽出元のフィールドを指定します。任意で、文字列の開始位置と長さを指定することもできます。

このパラメータには、英数字タイプまたは数値タイプのフィールドを指定できます。パック10進数タイプの数値フィールドに対して特定の開始位置と長さを指定する場合は、桁位置と長さがバイト位置とバイト長ではないことに注意してください。

文字列の開始位置を指定しない場合、開始位置1が使用されます。

文字列長を指定しない場合、*ENDが使用されます。この場合、開始位置からフィールド末尾までのすべての文字列が使用されます。

開始位置と長さの値は、リテラル値(10など)、または値が保持されているフィールドの名前(#LENGTHなど)として指定できます。

指定した開始位置と終了位置は、(変数である可能性があるため)実行時に検証されます。指定した開始位置または終了位置が無効の場合、ファンクションが異常終了し、失敗原因を示すエラー・メッセージが発行されます。

英数字フィールドから数値フィールドへのサブストリング操作に関する特記事項:

注1:フィールドには、0~9の数字のみが含まれている必要があります。符号記号('+'または'-')を含むその他の文字が含まれていると、予期しない結果になります。

注2:サブストリング操作は左から右に向かって実行されます。したがって、フィールド値が'123.45'の場合、符号付きフィールド(6.2) (初期設定は*ZERO)の1文字目から右に向かってサブストリングされ、値は1234.50に設定されます。

注3:Unicodeフィールドの長さと開始位置は文字で指定されます。全ての文字は2バイト単位です。

INTO_FIELD

FIELDパラメータで指定したフィールドから抽出した文字列を配置する先のフィールドを指定します。

このパラメータには、英数字タイプまたは数値タイプのフィールドを指定できます。パック10進数タイプの数値フィールドに対して特定の開始位置と長さを指定する場合は、桁位置と長さがバイト位置とバイト長ではないことに注意してください。

文字列の開始位置を指定しない場合、開始位置1が使用されます。

文字列長を指定しない場合、*ENDが使用されます。この場合、開始位置からフィールド末尾までのすべての文字列が使用されます。

開始位置と長さの値は、リテラル値(10など)、または値が保持されているフィールドの名前(#LENGTHなど)として指定できます。

指定した開始位置と終了位置は、(変数である可能性があるため)実行時に検証されます。指定した開始位置または終了位置が無効の場合、ファンクションが異常終了し、失敗原因を示すエラー・メッセージが発行されます。