ページの先頭行へ戻る
Big Data Integration ServerV1.4.0 加工編リファレンス集
FUJITSU Software

4.2.7 substrb関数

substrb関数は、項目参照で示す文字列の、指定した位置のバイト数から指定したバイト長の文字列を返却します。


substrb関数の書式を以下に示します。

図4.7 substrb関数の書式

参照

項目参照については、“3.1.9 項目参照”を参照してください。

開始位置

開始位置は、文字列の取得する開始位置を示します。(先頭は0から数えます)


長さ
グループ式およびソート式に指定した場合

長さは、開始位置から取得するバイト数を示し、省略時は256が指定されたとみなします。

長さに指定できる値は、1~256です。

上記以外に指定した場合

長さは、開始位置から取得するバイト長を示し、省略時は開始位置以降の文字列すべてをそのまま返します。
長さに指定できる値は、1以上です。


代替文字

以下の場合には、指定した代替文字が返信データの一部として出力されます。

代替文字は、返信データの1バイトに対応して出力されます。(開始位置が3バイト文字の2バイト目を指している場合には、2バイト目と3バイト目が代替文字に置き換わります。)

  • 開始位置が、マルチバイト文字の2バイト目以降の場合

  • 指定したバイト長がマルチバイト文字の途中となった場合

代替文字を省略した場合には、代替文字への置き換えはされず、実行時エラーとなります。


代替文字に指定できる文字は、以下の1バイト文字となります。

  • 文字コード 0x20 ~ 0x7e のエリアの文字

    ただし、以下の文字は、指定不可です。

    • 二重引用符「”」(文字コード0x22)

    • 大小記号「<、>」(文字コード  0x3c 0x3e)

    • アンドマーク「&」(文字コード 0x26)

    • シングルクオート「’」(文字コード 0x27)

    また、「半角空白」は「\s」、「バックスラッシュ」は「\\」で指定してください。


復帰値

変換が正常に動作した場合は、文字列型を返します。


substrb関数を利用してデータから部分文字列を取出します。取出した文字列の長さが固定長の5バイトになるように、末尾にアンダースコアを埋めます。

入力ファイル(input.csv)

key

value

1001

A1FJ

1002

B2FJM

1003

C3FMCS

1004

D4FEAST


実行パラメタ(動作環境ファイル、連結条件ファイル)
JnlFile
Jnl "input.csv"
LCondition
{
         $value1 := concat( $value ; "_____")
}
OutputDef
{
         $key, substrb($value1, 2, 5 ) value
}
OutFile
output.csv

出力ファイル(output.csv)

key

value

1001

FJ___

1002

FJM__

1003

FMCS_

1004

FEAST


注意

指定された開始位置が、マルチバイト文字の途中の場合や、指定したバイト長がマルチバイト文字の途中となった場合には、そのマルチバイト文字の可視化ができないため、実行時エラーとなります。

ただし、代替文字を指定することで、実行時エラーとはせずに、該当箇所を代替文字に置き換えて出力します。

グループ式やソート式に代替文字を指定したsubstrb関数が指定された場合には、代替文字を含む文字列が、グループキー、ソートキーとして処理されます。