16 進値を指定する DBD 文は、Load 関数を使用して IMS データベースをロードするとき問題が生じる原因になるので、特に注意してください。
一部の文には 16 進値に依存する条件が含まれますが、データベースをロードするときその 16 進値は EBCDIC から ASCII に変換されます。
次の例では、XDFLD 文にある NULLVAL パラメーターは 16 進値を使用して 2 次索引を定義し、索引キーの値に 16 進値が含まれるとき 2 次索引の作成を抑制します。次に例を示します。
XDFLD NAME=STREX013, SEGMENT=, NULLVAL=X'40',
データベースをロードしてデータを EBCDIC から ASCII に変換するとき、x'40' を含んでいるフィールドは x'20' に変換されます。これにより、Load 関数はキー値 x'20' を持つ複数のセグメントを挿入し、重複キー値が生じて挿入が失敗することになります。しかし、ここでの文の目的は索引セグメントの生成を抑制することです。
この問題を解決するには、16 進値を ASCII に変換された同等の値に変更します。次に例を示します。
XDFLD NAME=STREX013, SEGMENT=, NULLVAL=X'20',