TYPES: " structure type
BEGIN OF ts_flightinfo,
carrid TYPE s_carr_id,
carrname TYPE s_carrname,
connid TYPE s_conn_id,
fldate TYPE s_date,
percentage TYPE p LENGTH 3 DECIMALS 2,
END OF ts_flightinfo.
DATA: gs_flightinfo TYPE ts_flightinfo. " structure
gs_flightinfo-carrid = 'AA'.
gs_flightinfo-carrname = 'American Airline'.
write:/ gs_flightinfo-carrid, gs_flightinfo-carrname.
결과
AA American Airline
Standard Table:
- 데이터의 순서가 중요하지 않으며, 순차적 접근이 주로 사용됨.
Sorted Table:
- 데이터가 정렬된 상태로 유지되며, 정렬된 상태에서 빠른 검색이 가능함.
Hashed Table:
- 키 값을 기반으로 데이터를 빠르게 검색하며, 데이터의 순서에 관계없이 빠른 성능을 제공함.
접근 유형 | Standard Table | Sorted Table | Hashed Table |
---|---|---|---|
인덱스 접근 | O | O | X |
키 접근 | O | O | O |
키 유일성 | X | X/O | O |
Standard Table:
Sorted Table:
WITH UNIQUE KEY
옵션으로 유일한 키를 설정할 수 있음.Hashed Table:
DATA: wa1 TYPE zt_03_table_type. " internal table
DATA: wa1 TYPE LINE OF zt_03_table_type. " structure
DATA: wa1 TYPE scarr, " structure
itab1 TYPE TABLE OF scarr. " internal table
wa1-carrid = 'AA'.
wa1-carrname = 'American Airline'.
APPEND wa1 TO itab1.
wa1-carrid = 'KE'.
wa1-carrname = 'Korean Airline'.
APPEND wa1 TO itab1.
wa1-carrid = 'OZ'.
wa1-carrname = 'Asiana Airline'.
APPEND wa1 TO itab1.
LOOP AT itab1 INTO wa1.
write:/ sy-tabix, wa1-carrid, wa1-carrname.
ENDLOOP.
1 AA American Airline
2 KE Korean Airline
3 OZ Asiana Airline
LOOP AT itab1 INTO wa1 where carrid = 'KE'.
write:/ sy-tabix, wa1-carrid, wa1-carrname.
ENDLOOP.
2 KE Korean Airline
READ TABLE itab1 INTO wa1 WITH KEY carrid = 'KE'.
WRITE:/ sy-tabix, wa1-carrid, wa1-carrname.
2 KE Korean Airline
DATA: hit1 TYPE TABLE OF scarr WITH HEADER LINE.
hit1-carrid = 'AA'.
hit1-carrname = 'American Airline'.
APPEND hit1.
hit1-carrid = 'KE'.
hit1-carrname = 'Korean Airline'.
APPEND hit1.
hit1-carrid = 'OZ'.
hit1-carrname = 'Asiana Airline'.
APPEND hit1.
loop at hit1.
write:/ sy-tabix, hit1-carrid, hit1-carrname.
endloop.
WITH HEADER LINE
옵션을 사용하는 것보다 명시적으로 WORK AREA
를 선언하여 사용하는 것이 더 안전하고 가독성이 좋습니다.data: wa1 type spfli, " structure
it1 type table of spfli. " internal table
select *
from spfli
into table it1.
cl_demo_output=>display( it1 ).
data: wa1 type scarr, " structure
it1 type table of scarr. " internal table
select single *
from scarr
into wa1 " structure
where carrid = 'LH'.
cl_demo_output=>display( wa1 ).
select single 할 땐 into에 structure(work area)만 가능
data: wa1 type scarr, " structure
it1 type table of scarr. " internal table
select single *
from spfli
into CORRESPONDING FIELDS OF wa1 " structure
where carrid = 'LH'.
cl_demo_output=>display( wa1 ).
DATA: BEGIN OF wa1, " structure
carrid TYPE spfli-carrid,
connid TYPE spfli-connid,
cityfrom TYPE spfli-cityfrom,
cityto TYPE spfli-cityto,
END OF wa1.
DATA: it1 LIKE TABLE OF wa1. " internal table
SELECT *
FROM spfli
INTO CORRESPONDING FIELDS OF TABLE it1
WHERE carrid = 'LH'.
cl_demo_output=>display( it1 ).
DATA: BEGIN OF wa1,
carrid TYPE spfli-carrid,
connid TYPE spfli-connid,
cityfrom TYPE spfli-cityfrom,
cityto TYPE spfli-cityto,
END OF wa1.
DATA: it1 LIKE TABLE OF wa1.
SELECT FROM spfli
FIELDS *
WHERE carrid = 'UA'
INTO CORRESPONDING FIELDS OF TABLE @it1.
cl_demo_output=>display( it1 ).
가장 최신 문법
: select from -> fields -> where -> into
DATA: BEGIN OF wa1,
mandt TYPE spfli-mandt,
carrid TYPE spfli-carrid,
connid TYPE spfli-connid,
cityfrom TYPE spfli-cityfrom,
cityto TYPE spfli-cityto,
END OF wa1.
DATA: it1 LIKE TABLE OF wa1.
SELECT *
FROM spfli
CLIENT SPECIFIED
INTO CORRESPONDING FIELDS OF TABLE it1
WHERE mandt = '810'.
SORT it1 BY carrid connid.
cl_demo_output=>display( it1 ).
DATA: BEGIN OF wa1,
carrid TYPE spfli-carrid,
connid TYPE spfli-connid,
cityfrom TYPE spfli-cityfrom,
cityto TYPE spfli-cityto,
carrname TYPE scarr-carrname,
END OF wa1.
DATA it1 LIKE TABLE OF wa1.
SELECT b~carrid b~connid b~cityfrom b~cityto a~carrname
FROM scarr AS a
INNER JOIN spfli AS b
ON a~carrid = b~carrid
INTO CORRESPONDING FIELDS OF TABLE it1.
cl_demo_output=>display( it1 ).
AUTHORITY-CHECK OBJECT 'S_CARRID'
ID 'CARRID' FIELD '*'
ID 'ACTVT' FIELD '03'. " 조회 권한
IF sy-subrc = 0.
message e002(zt_msg_03) with sy-uname.
ENDIF.
select *
from scarr
into table @DATA(it1)
where carrid = 'AA'.
select *
from scarr
into table it1
where carrid = 'LH'.
cl_demo_output=>display( it1 ).
select *
from scarr
into table @DATA(it1)
where carrid = 'AA'.
select *
from scarr
appending table it1
where carrid = 'LH'.
cl_demo_output=>display( it1 ).
parameters: pa_carr type scarr-carrid default 'LH'.
select *
from spfli
into table @DATA(IT1)
where carrid = @pa_carr.
cl_demo_output=>display( it1 ).
parameters: pa_carr type scarr-carrid default 'LH',
pa_conn type spfli-connid default '0400'.
select *
from spfli
into table @DATA(it1)
where connid = @pa_conn
and carrid = @pa_carr.
cl_demo_output=>display( it1 ).