データ中のNULL文字の扱い

DataMagicでは、入力データ内にNULL文字(0x00)が存在した場合、どのように処理するかを選択できます。

NULL文字の処理方法は、次の4つです。

処理停止

: NULL文字があった場合、エラーとして処理を停止します。

スペース置き換え

: NULL文字をスペースに置き換えます。

0置き換え(DBのみ)

: NULL文字を0に置き換えます。

データ切り捨て

: NULL文字までをデータと判断し、以降を切り捨てます。

NULL文字を項目の一部として扱う

: NULL文字を変換しないで、NULL文字として扱います。

テキスト形式のデータ加工など、以降の説明の条件に該当しない場合は、NULL文字をそのまま扱います。

NULL文字が含まれるCSVファイルのプレビューでは、NULL文字は切り捨てられます。

(1) 処理停止

データ加工情報設定画面のオプションタブで、「停止条件」の"フォーマットの文字データ中にNULLがある場合"を設定した場合、入力データ内にNULL文字(0x00)が存在すると、処理を停止します。

入力の「項目タイプ」が"M"、"N"、"X"、"D"の場合に有効です。

停止条件を設定すると、以降の処理を停止するため、「NULL →スペース置換」や「数値項目NULL値の扱い」などの設定は無効になります。

(2) スペース置き換え

データ加工情報設定画面のオプションタブで、「NULL→スペース置換」の"置換する"を設定した場合、入力データ内にNULL文字(0x00)が存在すると、半角スペースに置き換えます。

フォーマット、マルチフォーマット、階層フォーマットの場合に有効となります。

入力の「項目タイプ」は"M"、"N"、"X"、"D"の4種類です。

半角スペースは、入力側の漢字コード種によって次のように置き換えられます。

Shift_JIS、EUC、UTF-8、JIS

: 0x20

UTF-16(Big Endian)

: 0x0020

UTF-16(Little Endian)

: 0x2000

EBCDIC(JEF、IBM、KEIS、NEC)

: 0x40

注意

制御文字やシフトコードを持つ全角データ内にNULL文字がある場合も無条件で半角スペースに置換されます。

= 備考 =

システム動作環境設定ファイルの「NULL文字を項目の一部として扱う(ed_fmt_null_flag)」に"1(扱う)"を設定していても、この設定が優先されます。

(3) 0置き換え(DBのみ)

DBテーブルの移行において、入力設定画面の「数値項目NULL値の扱い」に"0(ゼロ)"を設定した場合、入力データ内にNULL文字(0x00)が存在すると、0に置き換えられます。

「数値項目NULL値の扱い」に"空文字"を設定した場合は、そのままNULLとして変換されます。ただし、NULL文字はMタイプの空文字として扱います。

(4) データ切り捨て

データ加工情報設定画面のオプションタブで、「停止条件」の"フォーマットの文字データ中にNULLがある場合"を設定せず、「入力動作」の「NULL→スペース置換」で"置換しない"を設定している場合、数値項目以外の入力データ内にNULL文字(0x00)が存在すると、そこまでをデータであると判断し、以降のデータを切り捨てます(入力漢字コード種が"UTF-16"の場合は0x0000)。

図3.19 データ中のNULL文字

この扱いについては、以下の項目が該当します。

  • フォーマット項目"X"、"M"、"N"、"D"タイプ

  • CSV項目

注意

XMLのテキストまたは属性値内に、NULL文字が存在した場合、入力XMLファイルの読み込みエラーとなります。

(5) NULL文字を項目の一部として扱う

フォーマット情報の場合、NULL文字を変換しないで、NULL文字として扱えます。NULL文字として扱う場合は、システム動作環境設定ファイルの「NULL 文字を項目の一部として扱う(ed_fmt_null_flag)」に"1(扱う)"を設定します。

= 備考 =

データ加工情報設定画面のオプションタブで、以下のどちらかが設定されている場合は、データ加工情報設定画面の設定が優先されます。

  • 停止条件に「フォーマットの文字データ中にNULL がある場合」 が選択されている。

  • 入力動作の「NULL →スペース置換」に"置換する"が選択されている。