關於使用READ TABLE語句


READ tabe 是用來遍歷內表,取第一條符合條件的記錄。

READ TABLE <itab> [INTO <wa>] WITH KEY <key> [BINARY SEARCH].

add-20200427

WITH KEY 中的檢索條件比較符不能使用‘<>’(不等於)。

  如果只想取得內部表中不等於某條件的一條記錄,那么請使用下面變通方法。

       LOOP AT itab WHERE KEY <> ‘XX’.

          此處取得第一條記錄。

          EXIT.

       ENDLOOP.

   如果在運行時 <KEY> 值為空,則 統忽略該關鍵字段。另外可對關鍵字段指定偏移量和長度。

 

用 INTO 選項可以指定目標區域 。如果表格有表頭行,則可以忽略 INTO 選項。這樣,表格工作區域就成了目標區域。

系統讀取 <itab> 中匹配 <key> 中所定義的關鍵字的第一個條目。

如果使用二分法搜索法的話,需要先對內表進行相關條件的排序。

如果找到有適當關鍵字的條目,則將系統字段 SY-SUBRC設置為0,並且SY-TABIX包含該行的索引。否則,將 SY-SUBRC設置為非0值 。

例子如下:

DATA:IT_TAB1 TYPE STANDARD TABLE OF EKPO WITH HEADER LINE,
      IT_TAB2 TYPE STANDARD TABLE OF EKPO,
      IT_TAB3 TYPE STANDARD TABLE OF EKPO,
      WA_TAB1 TYPE EKPO,
      WA_TAB2 TYPE EKPO,
      WA_TAB3 TYPE EKPO.
SELECT * FROM EKPO INTO TABLE IT_TAB1 UP TO 10 ROWS.
SELECT * FROM EKPO INTO TABLE IT_TAB2 UP TO 10 ROWS.
SELECT * FROM EKPO INTO TABLE IT_TAB3 UP TO 10 ROWS.
SORT IT_TAB1.
SORT IT_TAB2.
SORT IT_TAB3.
  READ TABLE IT_TAB1 WITH KEY MATNR = 'QQQ'.

WRITE:/ SY-SUBRC,SY-TABIX.

READ TABLE IT_TAB2 INTO WA_TAB2 WITH KEY MATNR = 'M06A-CAA42' TXZ01 = '芯片M06A-CAA42'.“這個是多個KEY的

WRITE:/ SY-SUBRC,SY-TABIX.

READ TABLE IT_TAB3 INTO WA_TAB3 WITH KEY MATNR = 'M06A-CAA42' TXZ01 = '三氧化二鋁'.

WRITE:/ SY-SUBRC,SY-TABIX.

READ TABLE IT_TAB1 WITH KEY '4500000002'.
WRITE:/ SY-SUBRC,SY-TABIX.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM