REF커서 (2) 썸네일형 리스트형 Oracle PL/SQL REF 커서 [ 바인드변수 사용] REF커서를 사용해야 할 경우 USING 절을 이용해야 한다 대부분의 경우 WHERE 조건의 변수 값만 달리한 거의 동일한 SQL 이 반복수행되는데, USING 절이 생략되면 SQL 공유가 되지 않아 매번 하드 파싱을 유발하면 성능 문제를 일으킬수 있다. CREATE OR REPLACE PROCEDURE OPEN_REFCUR_PROC ( P_ENAME IN VARCHAR2 , O_CURSOR OUT SYS_REFCURSOR) IS I_SQL_STATEMENT VARCHAR2(32676); BEGIN --변수명 앞에 콜론 을 추가하여 USING 구문 대상임을 선언해야함 I_SQL_STATEMENT := ' SELECT /*USING*/ ENAME,JOB FROM EMP WHERE ENAME := P_ENA.. Oracle PL/SQL REF 커서 C프로그램의 포인터와 유사하며 값 자체가 아닌 메모리 위치를 포인트하는 변수로, 정적 커서는 쿼리의 결과를 작업 영역에 담는 것에 비해 REF커서변수는 작업 영역에 대한 포인터를 가진다. REF 커서 타입 REF 커서는 오라클에서 미리 선언해둔 타입인 SYS_REFCURSOR와 사용자가 REF 커서 타입을 정의하여 사용하는 두 가지 종류가 있다. REF 커서 타입선언 시 반환타입을 설정할 수 있는데, 반환 타입이 없을 경우에는 어느 쿼리에서나 사용이 될 수 있지만 (Weak),RETURN 구문을 사용하여 반환 타입을 설정한 경우에는 반드시 같은 타입의 커서에서만 사용이 가능하다 --반환 타입이 없는 약한 타입설정(weak) TYPE EMPCURTYPE IS REF CURSOR; --반환 타입이 있는 강한.. 이전 1 다음