31.2.2 10進項目の2進項目化
10進項目の2進項目化とは,作業場所節および局所場所節で定義された内部10進項目,外部10進項目を2進項目として扱うことをいいます。すなわち,USAGE句にBINARYが指定されているものとして扱います。-Bin1Byteオプションが指定されていても,けた数が1〜2けたの10進項目なら2バイトの2進項目として扱います。ただし,次のどれかの条件に該当する場合は,2進項目化の対象にはなりません。
- 〈この項の構成〉
(1) 2進項目が指定できない個所に指定されているもの
-
画面機能(SCREEN SECTION)※のCURSOR データ名
-
BLANK WHEN ZERO句がある
-
SIGN句があるデータ名
-
サブスキーマ節のSTATUS データ名
-
サブスキーマ節のDETAIL CODE データ名
-
部分参照がある
-
字類条件 一意名
-
英字,英数字,英数字型関数,英数字編集,数字編集,ZERO以外の表意定数,英数字定数との比較条件(EVALUATEの選択主体と選択対象の比較も含む)
-
EXAMINE文 一意名1
-
INSPECT文 一意名1,一意名3〜一意名n
-
STRING文 一意名1,2,3
-
TRANSFORM文 一意名1
-
UNSTRING文 一意名4
注※ AIXで有効です。
(2) 2進化することでサイズが大きくなるもの
次の場合,2進化することでサイズが大きくなります。ただし,01/77レベルは除きます。
-
1けたの外部10進
-
1,5,10,11,12,13けたの内部10進
(3) データを外部と入出力するもの
-
EXTERNAL属性
-
ADDR関数の引数
-
次の文に指定されたADDRESS OF 一意名
-
CALL文 REFERENCE 一意名
-
比較条件 一意名
-
SET文 送り出し側作用対象 一意名
-
SET文 受け取り側作用対象 一意名
-
-
ACCEPT文
ただし,次の一意名,データ名は除きます。
-
ACCEPT 一意名 FROM DATE/DAY/DAY-OF-WEEK/TIME
-
画面節(SCREEN SECTION)※でのACCEPT文のLINE/COLUMN 一意名
-
コマンド行の引数の個数を取得するACCEPT文の一意名9
-
-
DISPLAY文
ただし,次の一意名,データ名は除きます。
-
画面節(SCREEN SECTION)※でのDISPLAY文のLINE/COLUMN 一意名
-
コマンド行の引数の読み込み位置を設定するDISPLAY文の一意名7
-
-
CALL文 USING
-
CALL文 RETURNING
-
DISABLE文 一意名1
-
ENABLE文 一意名1
-
RECEIVE文 一意名1
-
SEND文 一意名1,2,3,4
-
TRANSCEIVE文 一意名1,2
-
INVOKE文 USING
-
INVOKE文 RETURNING
-
利用者定義関数
注※ AIXで有効です。
(4) 2進にすると長さが異なるもの
-
LENGTH関数
-
次の文に指定されたLENGTH OF 一意名
-
CALL文 BY CONTENT 一意名
-
CALL文 BY VALUE 一意名
-
INVOKE文 BY CONTENT 一意名
-
INVOKE文 BY VALUE 一意名
-
(5) 英数字転記/比較をするもの
MOVE文の転記の規則に従って転記するWRITE FROM,REWRITE FROM,RELEASE FROM,報告書節(REPORT SECTION)のSOURCE句,画面節(WINDOW SECTION)※のSOURCE句などを含みます。
-
集団項目との比較(EVALUATEの選択主体と選択対象の比較も含む)
-
MOVE 2進項目 TO 集団項目
-
MOVE 集団項目 TO 2進項目
-
READ文 INTO 一意名
-
RETURN文 INTO 一意名
-
-H8SwitchオプションがあるときのMOVE 2進項目 TO 英数字/英数字編集項目
注※ AIXで有効です。
(6) 外部10進,内部10進,2進で設定される値が異なるもの
-
MOVE WHEN-COMPILED TO 一意名
-
MOVE CURRENT-DATE TO 一意名
-
MOVE 外部10進項目/内部10進項目/2進項目/浮動小数点項目/数字編集項目以外の項目,英数字型関数 TO 一意名
(MOVE文の転記の規則に従って転記する場合も含む)
(7) 10進項目を間接的に参照/更新するもの
-
10進項目を含む集団項目が参照/更新されている
- 注
-
CORRESPONDING指定のあるADD文,SUBTRACT文,MOVE文,およびINITIALIZE文で指定した集団項目中の10進項目は2進化されません。
-
10進項目が再定義項目または被再定義項目となっている
-
10進項目を含む集団項目が再定義項目または被再定義項目となっている
-
10進項目にアドレス名指定がある
-
10進項目を含む集団項目にアドレス名指定またはVALUE句がある
-
再命名項目(RENAMES句がある)
-
被再命名項目(THRUなし)
-
被再命名項目(THRUあり)
-
被再命名項目(THRU範囲内の項目)
(8) 2進化すると実行速度が遅くなるもの
-
MOVE 2進 TO 数字編集項目(MOVE文の転記の規則に従って転記する場合も含む)
(9) ファクトリ定義およびインスタンス定義中の10進項目
-
ファクトリ定義およびインスタンス定義中の10進項目
(10) その他
-
作業場所節または局所場所節以外で定義されている
-
SYNCHRONIZED句がある
-
FILLER項目
-
特殊レジスタ
-
可変長集団項目中の10進項目
-
外部10進項目を含む集団項目にSIGN LEADING指定またはSIGN SEPARATE指定がある
-
PICTURE句の左端に「P」がある
-
CSV編成ファイルに対するWRITE文 FROM 一意名