오늘은 오랜만에 ABAP 에 관련된 내용을 포스팅한다. 오늘은 DBCO를 이용한 MS-SQL Stored procedure 를 호출하는 방법이다. 이미 F1을 누르면 설명과 샘플이 나오나 F1 보다 검색을 사용하는 분들을 위해서 포스팅 하고자 한다. 그냥 SQL 을 써도 되지만 Stored Procedure 는 이미 SQL server에서 컴파일이 되어 있고 내용이 변경이 되면 ABAP에서 SQL 을 수정하지 않아도 SQL Server 에서만 변경하면되니 참으로 간단하다.
EXEC SQL 의 예제에 나온 예문이다. ( 오라클 )
PARAMETERS incprice TYPE sflight-price.
EXEC SQL.
CREATE OR REPLACE PROCEDURE increase_price (x IN NUMBER) IS
BEGIN
UPDATE sflight SET price = price + x
WHERE mandt = '000';
END;
ENDEXEC.
EXEC SQL.
EXECUTE PROCEDURE increase_price ( IN :incprice )
ENDEXEC.
EXEC SQL 의 예제에 나온 예문이다. ( infomix )
DATA scarr_carrid TYPE scarr-carrid.
SELECT-OPTIONS s_carrid FOR scarr_carrid NO INTERVALS.
DATA s_carrid_wa LIKE LINE OF s_carrid.
DATA name TYPE c LENGTH 20.
TRY.
EXEC SQL.
CREATE FUNCTION selfunc( input CHAR(3) )
RETURNING char(20);
DEFINE output char(20);
SELECT carrname
INTO output
FROM scarr
WHERE mandt = '000' AND
carrid = input;
RETURN output;
END FUNCTION;
ENDEXEC.
LOOP AT s_carrid INTO s_carrid_wa
WHERE sign = 'I' AND option = 'EQ'.
TRY.
EXEC SQL.
EXECUTE PROCEDURE selfunc( IN :s_carrid_wa-low,
OUT :name )
ENDEXEC.
WRITE: / s_carrid_wa-low, name.
CATCH cx_sy_native_sql_error.
MESSAGE `Error in procedure execution` TYPE 'I'.
ENDTRY.
ENDLOOP.
EXEC SQL.
DROP FUNCTION selfunc;
ENDEXEC.
CATCH cx_sy_native_sql_error.
MESSAGE `Error in procedure handling` TYPE 'I'.
ENDTRY.
ABAP 의 도움말이 잘 되어 있어서 검색 사이트에 안 물어보는건지 알 수가 없다. 모를 때는 F1을 먼저 눌러서 예제가 없는지 확인하고 검색을 하는 습관을 들여야겠다.
ABAP 도움말 Stored Procedure 위치
반응형
'SAP > ABAP' 카테고리의 다른 글
| ABAP 메모리상의 프로그램 로컬 변수 Local Variable 접근하기 (0) | 2015.02.25 |
|---|---|
| ABAP 간단한 결과 내용을 ALV 팝업으로 출력하기 (0) | 2015.02.06 |
| ABAP BDC 동일한 Work Order 수행시 오류 발생(IW32) (0) | 2015.02.05 |
| ABAP Call Screen 100 실행 후 Write 구문 출력하기 (0) | 2015.01.26 |
| ABAP 텍스트 박스 ( Input Box ) Dropdown List 만들기 (0) | 2015.01.20 |
| ABAP 스크린 제목에 & 넣는 방법 (0) | 2014.12.16 |
| ABAP Class ALV Checkbox 변경시 Data Changed Event 실행 (0) | 2014.12.15 |
| ABAP Class ALV Cell 별 색상 넣기 (0) | 2014.12.10 |
| ABAP 파일 업로드, 다운로드시 파일 선택 팝업 생성 (0) | 2014.11.18 |
| ABAP Report 프로그램 실행시 Tcode 체크 (0) | 2014.11.17 |