[TEST PROCEDURE]
-- 패키지 선언
CREATE OR REPLACE PACKAGE PKG_TEST
IS
PROCEDURE PROC_TEST (
RESULT_DATA OUT CURSOR_REF
, P_USE_YN IN VARCHAR2
);
END;
-- 패키지 바디
CREATE OR REPLACE PACKAGE BODY PKG_TEST
IS
PROCEDURE PROC_TEST (
RESULT_DATA OUT CURSOR_REF
, P_USE_YN IN VARCHAR2
)
BEGIN
OPEN RESULT_DATA FOR
SELECT USR_ID
, USR_NM
FROM TB_EMP
WHERE USE_YN = P_USE_YN
END;
END;
[SQL Developer]
VAR RC REFCURSOR; -- REFCURSOR 변수 선언
EXEC PKG_TEST.PROC_TEST(:RC, 'Y'); -- 프로시저 인자에 REFCURSOR 변수 할당 및 프로시저 호출
PRINT RC; -- 결과 출력
※ SQL Developer 에서 실행결과를 보려면 상단의 [보기 > DBMS 출력] 메뉴를 선택 후 [+] 아이콘을 선택하면 결과 내용을 볼 수 있습니다.
[DBeaver]
DECLARE
RESULT_DATA SYS_REFCURSOR;
P_USE_YN VARCHAR(1) := 'Y';
V_01 VARCHAR2(500);
V_02 VARCHAR2(500);
BEGIN
PKG_TEST.PROC_TEST(RESULT_DATA, P_USE_YN);
LOOP
FETCH RESULT_DATA INTO V_01, V_02;
EXIT WHEN RESULT_DATA%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(V_01 || ', ' || V_02);
END LOOP;
CLOSE RESULT_DATA;
END;
※ 리턴 결과값의 컬럼 개수와 호출 개수는 동일해야합니다.
[References]
https://goddaehee.tistory.com/117
[Oracle] PL/SQL 기초3 - 커서
[Oracle] PL/SQL 기초3 - 커서 (CURSOR) 안녕하세요. 갓대희 입니다. 이번 포스팅은 [ PL / SQL 커서 ] 입니다. : ) 개인적으론 PL / SQL 의 꽃은 "커서"가 아닐까 생각합니다. 커서 (CURSOR) [정의] - SQL..
goddaehee.tistory.com
728x90
'DB > ORACLE' 카테고리의 다른 글
[ORACLE] SIGN 함수 (음수, 0, 양수 판단) (0) | 2022.09.13 |
---|---|
[ORACLE] 쿼리 출력하기 (INSERT, SELECT, UPDATE, DELETE) (0) | 2022.08.24 |
[ORACLE] 컬럼 조회 (0) | 2022.08.24 |
[ORACLE] 테이블 조회 (ALL) (0) | 2022.08.24 |
[ORACLE] 임시테이블 생성 (0) | 2022.08.19 |