반복 쿼리 그만 — 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 바로 작성 가능합니다.