!--a11y-->

ソートテーブル、ハッシュテーブル、内部テーブルへのキーアクセスはリリース 4.0 で初めて導入されましたが、標準テーブルは数リリース前からありました。行データ型、テーブルタイプ、ヘッダ行のないテーブルの定義は、リリース 3.0 以降でのみ行うことができます。このため、互換性のために引き続き存在している標準テーブルの機能があります。
リリース 3.0 より以前は、内部テーブルはすべてヘッダ行とフラット構造の行データ型を持ち、独立したテーブルデータ型はありませんでした。以下のように、DATA 命令で、後ろにフラット構造の宣言を記述した OCCURS オプションを使用して、テーブルオブジェクトを作成することができただけでした。
DATA: BEGIN OF <itab> OCCURS <n>,
...
<fi> ...,
...
END OF <itab>.
この命令では、OCCURS オプションの後ろに定義された行データ型を持つ内部テーブル <itab> が宣言されます。さらに、すべての内部テーブルにはヘッダ行が含められます。
OCCURS オプションの番号 <n> は、リリース 4.0 の INITIAL SIZE オプションの場合と同じ意味を持ちます。‘0’ を入力すると、INITIAL SIZE オプションを省略したのと同じ結果になります。その場合、テーブルの初期サイズはシステムによって決定されます。
上記の命令は、リリース 4.0 でも使用でき、以下の命令とほぼ同じ機能を持ちます。
TYPES: BEGIN OF <itab>,
...
<fi> ...,
...
END OF <itab>.
DATA <itab> TYPE STANDARD TABLE OF <itab>
WITH
NON-UNIQUE DEFAULT KEY
INITIAL SIZE <n>
WITH HEADER LINE.
元の命令では、独立したデータ型 <itab> は作成されません。代わりに、行データ型はデータオブジェクト <itab> の属性としてのみ存在します。
リリース 3.0 以降では、以下の命令を使用してテーブルデータ型を作成することができます。
TYPES <t> TYPE|LIKE <linetype> OCCURS <n>.
また、以下の命令を使用してテーブルオブジェクトを作成することができます。
DATA <itab> TYPE|LIKE <linetype> OCCURS <n> [WITH HEADER LINE].
OCCURS オプションによって、データ型 <linetype> を持つ標準テーブルが作成されます。行データ型は任意のデータ型にすることができます。OCCURS オプションの番号 <n> は、3.0 より前のリリースの場合と同じ意味を持ちます。4.0 より前のリリースでは、内部テーブルのキーは必ずデフォルトキーでした。つまり、すべての非数値項目はそれ自体が内部テーブルになることはありませんでした。
上記の命令は、リリース 4.0 でも使用でき、以下の命令と同じ機能を持ちます。
TYPES|DATA <itab> TYPE|LIKE STANDARD TABLE OF <linetype>
WITH
NON-UNIQUE DEFAULT KEY
INITIAL
SIZE <n>
[WITH
HEADER LINE].
この命令は、以下の命令と置き換えることもできます。
標準テーブルを作成する場合、以下の TYPES 命令と DATA 命令の書式を使用することができます。また、すべての命令で INITIAL SIZE オプションを使用することができます。DATA 命令では、WITH HEADER LINE オプションを使用することができます。
ジェネリック標準テーブルデータ型:
TYPES <itab> TYPE|LIKE [STANDARD] TABLE OF <linetype>.
テーブルキーは定義されません。
完全指定標準テーブルデータ型:
TYPES <itab> TYPE|LIKE [STANDARD] TABLE OF <linetype>
WITH [NON-UNIQUE] <key>.
完全指定標準テーブルのキーは常に非一意です 。
DATA 命令の簡易書式
DATA <itab> TYPE|LIKE [STANDARD] TABLE OF <linetype>.
DATA
<itab> TYPE|LIKE [STANDARD] TABLE OF <linetype>
WITH
DEFAULT KEY.
上記のどちらの DATA 命令も、以下のようにシステムによって自動的に完成されます。
DATA <itab> TYPE|LIKE STANDARD TABLE OF <linetype>
WITH
NON-UNIQUE DEFAULT KEY.
DATA 命令の簡易書式の目的は、以前のリリースの内部テーブルと互換性のある標準テーブルの宣言をできるだけ単純にしておくことにあります。上記のデータ型を参照する標準テーブルを宣言すると、テーブルキーとしてデフォルトキーが自動的に採用されます。
完全指定標準テーブル:
DATA <itab> TYPE|LIKE [STANDARD] TABLE OF <linetype>
WITH [NON-UNIQUE] <key>.
標準テーブルのキーは常に非一意です。