• Inicio


@ Josep Gil

이 구문에서 INSERT 문은 internal_tab 내부 테이블에 새 줄을 삽입합니다. 내부_tab 매개 변수 앞에 work_area_itab INTO 식을 사용하여 새 줄을 삽입할 수 있습니다. work_area_itab INTO 식을 사용하면 work_area_itab 작업 영역에서 새 줄을 가져와 내부_tab 테이블에 삽입합니다. 그러나 work_area_itab INTO 식이 선을 삽입하는 데 사용되지 않는 경우 line은 internal_tab 테이블의 헤더 줄에서 가져옵니다. itable1 루프 내부에 새 행을 삽입할 때1, 내부 테이블에 즉시 영향을 주지 않습니다. 실제로 다음 루프 패스에서 효과적입니다. 현재 행 다음행을 삽입하는 동안 테이블은 ENDLOOP에서 다시 인덱싱됩니다. sy-tabix는 증분되고 다음 루프는 sy-tabix가 가리키는 행을 처리합니다. 예를 들어 두 번째 루프 패스에 있고 행 3 앞에 레코드를 삽입하는 경우. endloop가 실행되면 새 행이 행 3이 되고 이전 행 3은 행 4가 됩니다.

Sy-tabix는 1로 증가되고 다음 루프 패스는 새로 삽입된 레코드를 처리합니다. 나는 선택 문을 사용하여 마라에서 레코드를 선택할 수 있습니다 (ernam 및 matnr), 나는 내 테이블에 이러한 rec을 삽입 할 (즉, 나는 se11을 사용하여 만든—-즉 2 필드 = matnr 및 ernam). 이 변형은 포함된 하위 쿼리 SELECT subquery_clause의 결과 집합의 행을 삽입하며, 여기서 여러 결과 집합을 UNION과 조인할 수 있습니다. APPEND 문은 기존 내부 테이블에 단일 행 또는 줄을 추가하는 데 사용됩니다. 이 문은 작업 영역에서 한 줄을 복사하고 내부 테이블의 마지막 기존 줄 다음으로 삽입합니다. 작업 영역은 내부 테이블의 줄과 동일한 구조를 가진 헤더 줄 또는 다른 필드 문자열일 수 있습니다. 다음은 내부 테이블에서 한 줄을 추가하는 데 사용되는 APPEND 문의 구문입니다 – INDEX 추가가없는 첫 번째 INSERT 문은 단순히 내부 테이블의 끝에 레코드를 추가합니다. 그러나 특정 위치에 선을 삽입하려면 두 번째 레코드로 삽입하려면 INSERT 문에서 2를 인덱스로 지정해야합니다. 이 두 변형은 작업 영역 wa에 포함된 단일 행을 삽입합니다. 두 변형 모두 동일한 동작을 표시하며 구문만 다릅니다.

SAP ABAP에서 SUM 및 COLLECT 작업을 사용하여 작업 수집을 사용하는 예제와 함께 설명을 참조하십시오 ABAP 이 변형은 내부 테이블 itab에 포함된 행을 삽입합니다. 다음은 삽입 문을 사용하는 샘플 프로그램입니다. 시스템 필드 명령문 INSERT는 시스템 필드 sy-subrc(아래 참조)와 sy-dbcnt의 값을 설정합니다. sy-dbcnt는 삽입된 행의 수로 설정됩니다. 숫자 또는 행이 2,147,483,647보다 크므로 오버플로가 발생하는 경우 sy-dbcnt는 -1로 설정됩니다. sy-subrc가 2인 경우 작성기 스트림에 대한 구성 요소가 있는 LOB 핸들 구조를 삽입할 때 sy-dbcnt도 -1(정의되지 않음)으로 설정됩니다. 삽입된 하위 쿼리의 결과 집합이 삽입될 때 행을 삽입할 수 없는 경우(동일한 기본 키 또는 동일한 고유 보조 인덱스가 있는 행이 존재하기 때문에) 클래스 CX_SY_OPEN_SQL_DB의 catchable 예외가 항상 제기되고 시스템 필드 sy-subrc 설정되지 않았습니다.