2016-04-07 19 views
1

どちらを優先するべきなのか/なぜですか?SAP/ABAPにおけるこれらの2種類の内部テーブル宣言の違いは何ですか?

だから私は、ローカルに定義されたTYPEあります

TYPES: 
    BEGIN OF CUSTOMER_STRU_TYPE, 
     KUNNR TYPE KNA1-KUNNR, 
     NAME1 TYPE KNA1-NAME1, 
    END OF CUSTOMER_STRU_TYPE. 

を、私は以下の見これらの2文は両方とも同じことを行うだろうと思い:

DATA: 
    CUSTOMER_TAB TYPE CUSTOMER_STRU_TYPE OCCURS 5. 

DATA: 
    CUSTOMER_TAB TYPE STANDARD TABLE OF CUSTOMER_STRU_TYPE. 

は見た2文の間のいずれかの違いがありますどちらを優先すべきか?

+0

あなたは既にそれについて尋ねました。 'OCCURS'の最初のステートメントは、ヘッダー行のある内部テーブルを定義し、もう1つはヘッダー行のない内部テーブルを定義します。 「OCCURS 5」は、最初に5行分のメモリが割り当てられることを意味します。 – Jagger

+2

[ABAPで使用されるヘッダー行とは何ですか?](http://stackoverflow.com/questions/36282951/what-is-with-header-line-used-for-in-abap) – Jagger

+0

こんにちは@ジャガー 。これらの2つの違いは次のとおりです。既存の/欠けている: "ヘッダー付き"の標準的なテーブル..これは実際には異なる質問です。 –

答えて

3

2つのステートメントの主な違いは、最初のものではcustomer_tabテーブルの5行を格納するためのメモリスペースを確保していることです。 パフォーマンス面では、2番目のステートメントが最適です。

+0

最初のステートメントはテーブルに加えて "ヘッダーライン"も宣言します。したがって、テーブルにアクセスしようとすると、大括弧(例:CUSTOMER_STRU_TYPE [])を使用してテーブルを明示する必要があります。 – Esti