[오라클12C새기능, 오라클12C교육강좌]오라클커서리턴,DBMS_SQL.RETURN_RESULT, REF
CURSOR대신 사용
오라클12C 이전에는 커서의 값을 다른 App등으로 리턴시켜주기 위해서는 REF CURSOR를 선언하곤 했는데... 오라클12c부터는
DBMS_SQL.RETURN_RESULT를 이용해서 묵시적으로 가능하다, 예제를 참고하자.
CREATE TABLE test (
id NUMBER,
name VARCHAR2(10)
);
id NUMBER,
name VARCHAR2(10)
);
INSERT INTO test VALUES (1, '1길동');
INSERT INTO test VALUES (2, '2길동');
COMMIT;
INSERT INTO test VALUES (2, '2길동');
COMMIT;
CREATE OR REPLACE PROCEDURE get_name (p_id IN NUMBER DEFAULT NULL)
AS
cursor_1 SYS_REFCURSOR;
cursor_2 SYS_REFCURSOR;
BEGIN
IF p_id IS NOT NULL THEN
OPEN cursor_1 FOR
SELECT name
FROM test
WHERE id = p_id;
DBMS_SQL.RETURN_RESULT(cursor_1);
END IF;
OPEN cursor_2 FOR
SELECT COUNT(*)
FROM test;
SELECT COUNT(*)
FROM test;
DBMS_SQL.RETURN_RESULT(cursor_2);
END;
/
SQL*Plus에서...
SQL> EXEC get_name(1);
PL/SQL procedure successfully completed.
ResultSet #1
NAME
----------------------
1길동
----------------------
1길동
1 row selected.
ResultSet #2
COUNT(*)
----------
2
----------
2
1 row selected.
SQL> EXEC get_name;
PL/SQL procedure successfully completed.
ResultSet #1
COUNT(*)
----------
2
----------
2
1 row selected.
오라클자바커뮤니티에서 설립한 개발자교육6년차 오엔제이프로그래밍 실무교육센터
(오라클SQL,튜닝,힌트,자바프레임워크,안드로이드,아이폰,닷넷 실무개발강의)
[개강확정 강좌]
[평일저녁9/24]iPhone 하이브리드 앱 개발 실무과정
[평일저녁9/26]Spring3.X, MyBatis, Hibernate실무과정 
[주말9/28] 웹퍼블리싱 마스터 
댓글 없음:
댓글 쓰기