반복 쿼리 그만 — HANA Stored Procedure #shorts #SAP #HANA
Moderator
· 조회 2
HANA Stored Procedure란
SAP HANA의 Stored Procedure는 데이터베이스 서버에서 직접 실행되는 로직 블록입니다. 반복 쿼리를 캡슐화하고, 네트워크 왕복을 줄이며, 복잡한 비즈니스 로직을 DB 레이어에서 처리할 수 있습니다.
기본 구문
CREATE OR REPLACE PROCEDURE get_orders(
IN iv_status NVARCHAR(10),
OUT ov_count INTEGER
)
LANGUAGE SQLSCRIPT AS
BEGIN
SELECT COUNT(*) INTO ov_count
FROM ORDERS
WHERE STATUS = iv_status;
END;파라미터 타입
IN은 입력값, OUT은 결과 반환, INOUT은 입출력 겸용입니다. Result set을 반환하려면 TABLE TYPE을 OUT 파라미터로 선언합니다.
CREATE OR REPLACE PROCEDURE get_active_orders(
IN iv_user NVARCHAR(60),
OUT ot_result TABLE(ID INTEGER, AMOUNT DECIMAL)
)
LANGUAGE SQLSCRIPT AS
BEGIN
ot_result = SELECT ID, AMOUNT
FROM ORDERS
WHERE CREATED_BY = iv_user
AND STATUS = 'ACTIVE';
END;호출 방법
-- SQL로 직접 호출
CALL get_orders('ACTIVE', ?);
-- CAP에서 호출
const result = await cds.run(
'CALL get_orders(:status, ?)',
{ status: 'ACTIVE' }
);핵심 한 줄
IN/OUT 파라미터와 SQLSCRIPT 블록 — 이것만 알면 HANA Stored Procedure 바로 작성 가능합니다.