変換エラー
dcl Ctlno char(8) init('0');
do I=1 to 100;
Ctlno=Ctlno+1;
·
·
·
end;
この例では、システムで許可される FIXED DECIMAL の精度の最大値に 15 が使用されました。
この例では、下記の一連の処理が行われるので、CONVERSION 条件が起こります。
- CTLNO の初期値、すなわち '0bbbbbbb' は FIXED DECIMAL(15,0) に
変換されます。
- 属性 FIXED DECIMAL(1,0) を持つ 10 進定数 1 が追加されます。追加の規則に従って、結果の精度は (16,0) です。
- 次に、この値を再び CTLNO に割り当てるために、この値の長さ 18 の文字ストリングに変換されます。
- CTLNO の長さは 8 なので、割り当てによって右側が切り捨てられ、CTLNO の最終的な値はブランクだけになります。
2 回目のループでは、この値を算術タイプに正しく変換できません。
|
This information center is powered by Eclipse technology. (http://www.eclipse.org)