ストリング記述子では、ヘッダーの 2 番目のバイトがストリング・タイプ (ビット、文字、またはグラフィックのほかに、非可変、可変、または可変 z) を表します。
非可変ビット・ストリングのストリング記述子では、 ヘッダーの 3 番目のバイトがビット・オフセットを表します。
CHARACTER ストリングのストリング記述子では、ヘッダーの 3 番目のバイトは、コンパイラー CODEPAGE オプションをエンコードします。
可変ストリングのストリング記述子では、4 番目のバイトに、ストリング長がネイティブ以外のフォーマットで保持されるかどうかを表すビットが含まれます。
文字ストリングのストリング記述子でも、4 番目のバイトに、ストリング・データが EBCDIC であるかどうかを表すビットが含まれます。
ストリング記述子の宣言は次のとおりです。
declare
1 dsc_String based( sysnull() ),
2 dsc_String_Header,
3 * fixed bin(8) unsigned,
3 dsc_String_Type fixed bin(8) unsigned,
3 * union,
4 dsc_String_Codepage ordinal ccs_Codepage_Enum,
4 dsc_String_BitOfs fixed bin(8) unsigned,
3 *,
4 dsc_String_Has_Nonnative_Len bit(1),
4 dsc_String_Is_Ebcdic bit(1),
4 dsc_String_Has_Nonnative_Data bit(1),
4 * bit(5),
2 dsc_String_Length fixed bin(31); /* max length of string */
dsc_String_Type フィールドに指定できる値は次のとおりです。
declare dsc_String_Type_Unset fixed bin(8) value(0), dsc_String_Type_Char_Nonvarying fixed bin(8) value(2), dsc_String_Type_Char_Varyingz fixed bin(8) value(3), dsc_String_Type_Char_Varying2 fixed bin(8) value(4), dsc_String_Type_Bit_Nonvarying fixed bin(8) value(6), dsc_String_Type_Bit_Varying2 fixed bin(8) value(7), dsc_String_Type_Graphic_Nonvarying fixed bin(8) value(9), dsc_String_Type_Graphic_Varyingz fixed bin(8) value(10), dsc_String_Type_Graphic_Varying2 fixed bin(8) value(11), dsc_String_Type_Widechar_Nonvarying fixed bin(8) value(13), dsc_String_Type_Widechar_Varyingz fixed bin(8) value(14), dsc_String_Type_Widechar_Varying2 fixed bin(8) value(15);