12.4.3 メインフレームで使用していたデータをデータロードする場合の注意事項
メインフレームで使用していた符号付きパック形式のデータをデータロードする場合の注意事項を説明します。
- 〈この項の構成〉
(1) 符号部に関する注意事項(符号部の変換規則)
符号付きパック形式(HiRDB/SDのPACKED DECIMAL FIXED型)の符号部の仕様がメインフレームとHiRDB/SDで異なります。仕様差を次の表に示します。
符号部 |
メインフレームの仕様 |
HiRDB/SDの仕様 |
データロード時に変換される値 |
---|---|---|---|
X'A' |
正の値を意味します。 |
− |
X'C' |
X'B' |
負の値を意味します。 |
− |
X'D' |
X'C' |
正の値を意味します。 |
正の値を意味します。 |
変換されません。 |
X'D' |
負の値を意味します。 |
負の値を意味します。 |
変換されません。 |
X'E' |
正の値を意味します。 |
− |
X'C' |
X'F' |
正の値を意味します。 |
正の値を意味します。 |
X'C' |
上記の表に示すように符号部の仕様に差があるため,データロード時に符号部が変換されます。ただし,符号部が変換されるのは,システム共通定義のpd_dec_sign_normalizeオペランドにYを指定した場合に限ります。そのため,データロードを実行する前に,pd_dec_sign_normalizeオペランドにYが指定されているか確認してください。
- 注意事項
-
pd_dec_sign_normalizeオペランドにYを指定しないでデータロードした場合,符号部が変換されない状態でデータベースに格納されます。この状態でデータを検索,更新した場合,検索結果が正しく返らなかったり,データベースが破壊されたりすることがあります。
(2) 精度に関する注意事項
精度(全体の桁数)が偶数の場合,PACKED DECIMAL FIXED型のデータの先頭4ビットがB'0000'である必要があります。メインフレームでDECIMAL型のデータの先頭4ビットがB'0000'でないデータを使用していた場合は,先頭4ビットを0クリアしてからデータロードしてください。
なお,精度が奇数の場合は,先頭4ビットの0クリアは必要ありません。