DESCRIBE TABLE
語法:DESCRIBE TABLE itab [KIND knd] [LINES lin] [OCCURS n]
作用:判斷內表itab的某些屬性並把它們指定到指定的變量中。不同的選項使你能夠判斷表 類型,當前字段行數 和 初始化需要的內存大小。
另外,系統字段sy-tfill 和 sy-tleng 保存着當前表行數量 和 以字節計的表行長度。
注:
為了更詳細的關於內表的信息,應 用RTTS的方法代替語句describe table。
沒有指定一個附加項,語句describe table 只設置系統字段sy-tfill 和sy-tleng的值。
1.·····KIND knd
判斷內表itab的表類型,並把一個相應的字符的標識賦給字符型數據類型的數據對象knd。標識為T 時代表標准表,為S時代表排序表,為H時代表哈希表。
這些值在類型組SYDES中也被定義成常量sydes_kind-standed ,sydes_kind-sorted,sydes_kind-hashed。
例:在一個子程序中對一個一般內表進行遞減排序。因為排序表不能降序排列,所以會進 行表類型檢查來避免不能處理的異常。
TYPE-POOLS sydes.
...
FORM sort_descending CHANGING itab TYPE ANY TABLE.
DATA tabkind(1) TYPE c.
DESCRIBE TABLE itab KIND tabkind.
IF tabkind = sydes_kind-standard OR
tabkind = sydes_kind-hashed.
SORT itab DESCENDING.
ELSEIF tabkind = sydes_kind-sorted.
MESSAGE '...' TYPE 'E'.
ELSE.
MESSAGE '...' TYPE 'E'.
ENDIF.
ENDFORM.
2.·····LINES lin
決定內表表行的當前數量並且把值賦給數據對象lin。
Lin為I類型的數據對象。
注:
在版本6.10中,內表表行的當前數量也可以用內建函數lines來判斷。
3.·····OCCURS n
在內表用選項initial size 或者 老式的選項ocurs創建期間決定內表所需要的初始化內存大小,並把值賦給數據對象n,n為I類型的數據對象。