7.9.3 CHANGEの使用例
例1:フィールド#COUNTの値を1ずつ大きくします。
CHANGE FIELD(#COUNT) TO('#COUNT + 1')
例2:フィールド#QUANTITYをフィールド#COUNTに加算します。
CHANGE FIELD(#COUNT) TO('#COUNT + #QUANTITY')
例3:グループ#ORDERLINE内のすべてのフィールドをNULL値に変更します。"NULL"値は、英数字フィールドの場合はブランク、数値フィールドの場合は0です。
GROUP_BY NAME(#ORDERLINE) FIELDS(#ORDLIN #PRODUCT #QUANTITY #PRICE)
CHANGE FIELD(#ORDERLINE) TO(*NULL)
これは以下の例と同じです。
CHANGE FIELD(#ORDLIN) TO(*NULL)
CHANGE FIELD(#PRODUCT) TO(*NULL)
CHANGE FIELD(#QUANTITY) TO(*NULL)
CHANGE FIELD(#PRICE) TO(*NULL)
これは以下の例と同じです。
CHANGE FIELD(#ORDLIN) TO(*ZERO)
CHANGE FIELD(#PRODUCT) TO(*BLANKS)
CHANGE FIELD(#QUANTITY) TO(*ZERO)
CHANGE FIELD(#PRICE) TO(*ZERO)
これは以下の例と同じです。
CHANGE FIELD(#ORDLIN) TO(0)
CHANGE FIELD(#PRODUCT) TO(''' ''')
CHANGE FIELD(#QUANTITY) TO(0)
CHANGE FIELD(#PRICE) TO(0)
例4:グループ#ORDERLINE内のすべてのフィールドを、データ・ディクショナリで定義されているデフォルト値に変更します。
GROUP_BY NAME(#ORDERLINE) FIELDS(#ORDLIN #PRODUCT #QUANTITY #PRICE)
CHANGE FIELD(#ORDERLINE) TO(*DEFAULT)
これは以下の例と同じです。
CHANGE FIELD(#ORDLIN) TO(*DEFAULT)
CHANGE FIELD(#PRODUCT) TO(*DEFAULT)
CHANGE FIELD(#QUANTITY) TO(*DEFAULT)
CHANGE FIELD(#PRICE) TO(*DEFAULT)
例5:フィールド#A、#B、および#Cのそれぞれに#QUANTITY×#PRICEの結果が保持されるように変更します。
CHANGE FIELD(#A #B #C) TO('#QUANTITY * #PRICE')
これは以下の例と同じです。
CHANGE FIELD(#A) TO('#QUANTITY * #PRICE')
CHANGE FIELD(#B) TO('#QUANTITY * #PRICE')
CHANGE FIELD(#C) TO('#QUANTITY * #PRICE')
例6:フィールド#A、#B、および#Cのそれぞれに値1が保持されるように変更します。
CHANGE FIELD(#A #B #C) TO(1)
これは以下の例と同じです。
CHANGE FIELD(#A) TO(1)
CHANGE FIELD(#B) TO(1)
CHANGE FIELD(#C) TO(1)
例7:フィールド#Aおよび#Bに'#A + 1'の結果が保持されるように変更します。
CHANGE FIELD(#A #B) TO('#A + 1')
これは以下の例と同じです。
CHANGE FIELD(#A) TO('#A + 1')
CHANGE FIELD(#B) TO('#A + 1')
結果的な#Aおよび#Bの値が同じにならないことに注意してください。この例では、#Bの値は、#Aより1だけ大きくなります。
これは必ずしも間違いではありませんが、予期される結果ではない場合もあります。#Aと#Bの値を同じ値(#A + 1)にするには、以下のいずれかの方法を使用してください。
CHANGE FIELD(#B #A) TO('#A + 1')
これは以下の例と同じです。
CHANGE FIELD(#B) TO('#A + 1')
CHANGE FIELD(#A) TO('#A + 1')
あるいは
CHANGE FIELD(#A) TO('#A + 1')
CHANGE FIELD(#B) TO(#A)