ORACLE
오라클 프로시저에서 SELECT 사용하기 및 데이터 확인
날아올라↗↗
2015. 12. 9. 17:43
728x90
반응형
// 프로시저 작성
- CREATE OR REPLACE PROCEDURE SP_SEL_DATA
- (
- IN_01 IN VARCHAR2,
- OUT_LISTDATA_01 OUT sys_refcursor,
- OUT_LISTDATA_02 OUT sys_refcursor,
- OUT_DATA_CNT OUT NUMBER(10)
- )
- IS
- BEGIN
- SELECT COUNT(1) INTO OUT_DATA_CNT FROM TMP;
- OPEN OUT_LISTDATA_01 FOR
- SELECT V1, V3 FROM TMP;
- OPEN OUT_LISTDATA_02 FOR
- SELECT V1, V2, V3, V4 FROM TMP;
- END SP_SEL_DATA;
// 프로시저 작성데이터 출력 확인 // 중요1. LOOP 절 이후에 받아올 리스트를 정의시 (FETCH OUT_LIST_01 컬럼명을 한개라도 빼먹고 데이터를 받으면 오류 - 즉 SELECT 절에서 정의한 컬럼명을 다 받아야 함)
- DECLARE
- OUT_LIST_01 sys_refcursor;
- OUT_LIST_02 sys_refcursor;
- OUT_CNT NUMBER(10);
- V_V1 VARCHAR(20);
- V_V2 VARCHAR(20);
- V_V3 VARCHAR(20);
- V_V4 VARCHAR(20);
- BEGIN
- SP_SEL_DATA('1085861512', OUT_LISTDATA_01 => OUT_LIST_01, OUT_LISTDATA_01 => OUT_LIST_02, OUT_CNT);
- LOOP
- FETCH OUT_LIST_01 INTO V_V1, V_V3;
- EXIT WHEN OUT_LIST_01%NOTFOUND;
- DBMS_OUTPUT.PUT_LINE(V_V1||' '||V_V3);
- END LOOP;
- CLOSE OUT_LIST_01;
- END;
- /
728x90
반응형