Kombination Read itab und Select dbtbl
Aus SAP-Wiki
Zur Navigation springenZur Suche springen
Siehe Schlüsselbefehl Select.
Eine sehr clevere Idee ist es, die Daten in eine interne Tabelle zwischenzuspeichern und zunächst in der internen Tabelle zu suchen. Dieses Vorgehen macht Sinn, wenn einerseits es nicht sinnvoll ist, eine Datenbanktabelle komplett in eine ITAB einzulesen und wenn zugleich die gefundenen Sätze mehrfach identifiziert werden müssen.
Beispiel (hier wird nach dem Materialtext eines Materials gesucht):
Types: begin of ty_matnr, matnr type makt-matnr, maktx type makt-maktx, end of ty_matnr. Data: lt_matnr TYPE SORTED TABLE OF ty_matnr WITH UNIQUE KEY matnr, ls_matnr type ty_matnr. IF <fs>-matnr <> space. READ TABLE lt_matnr INTO ls_matnr WITH KEY matnr = <fs_wpbil>-matnr BINARY SEARCH. " Wenn der Satz bereits gepuffert ist, wird er extrem schnell gefunden IF sy-subrc = 0. l_maktx = ls_matnr-maktx. " Wenn er nicht gepuffert ist, lese ihn von der Datenbank und füge ihn zur ITAB hinzu ELSE. SELECT SINGLE matnr maktx INTO ls_matnr FROM makt WHERE matnr = <fs>-matnr AND spras = sy-langu. l_maktx = ls_matnr-maktx. INSERT ls_matnr INTO TABLE lt_matnr. ENDIF. ENDIF.