機能
CODE-SET(符号系)句は外部媒体上のデータを表現するために使用される符号系を指定する。
CODE-SET句を指定できるのは、レコード順編成
および行順編成の
ファイルに対してだけである。
標準COBOL定義の一部を構成するにもかかわらず、X/OpenのCOBOL言語定義では、この機能は明示的に除外されている。したがって、X/OpenのCOBOLに準拠する原始プログラム内ではこの句を使用するべきではない。
一般形式

指令
- 予約語リストにフラグを付けたり修正したりするコンパイラ指令に加えて、下記の指令によって、この項に記述した構文または意味が影響を受ける可能性がある。
- CHARSET - 何が固有の符号系とみなされるかを決定する。
構文規則
- あるファイルにCODE-SET句を指定した場合、そのファイル中のすべてのデータ項目の用途をDISPLAYと記述し、符号付き数字データがあればSIGN IS SEPARATE句を記述する。
上記の制限は適用しない。
- CODE-SET句によって参照される符号系名句には、定数を指定できない。
上記の制限は適用しない。
-
一意名-1は修飾してもよいが、添字は付けられない。
-
各一意名-1は、該当するファイルのレコード記述中に記述したデータ項目とする。しかし、それ自体がレコード記述であってはならない。すべての一意名-1は、同じレコード記述内に含まれていなければならない。
-
FORを指定すると、その対象のデータ項目にCODE-SET句に指定した符号系が適用される。FORを指定しないと、該当するファイル全体にCODE-SET句に指定した符号系が適用される。
- どのようなファイルまたはその中のデータ項目に関しても、固有の文字集合にはCODE-SET句は適用されないものと想定される。
一般規則
-
レコード領域中のデータは、つねにASCIIコードで書かれる。特殊名段落において符号系名がEBCDICに設定されていると、CODE-SET句の影響を受けるデータは、ファイルに書かれるときにASCIIからEBCDICにコード変換される。特殊名段落において符号系名がSTANDARD-1, STANDARD-2, NATIVE, ASCIIのいずれかに設定されている場合は、コード変換は必要ない。
-
上記のコード変換に際しては、CODE-SET句が適用されるデータ項目はどれも英数字として扱われる。そのデータ記述に字類または項類がどのように記述されているかは考慮されない。
-
一意名-1にOCCURS句が指定してある場合、CODE-SET句はその最初の要素に対してだけ適用される。一意名-1の下位に属する項目にOCCURS句が指定してある場合、COSE-SET句は一意名-1全体に適用される。