2022년 1월 8일 토요일

오라클PLSQL DBMS_SQL 참조커서(REFCURSOR) 실습, 동적SQL,TO_REFCURSOR,오라클교육,SQL교육,JAVA교육,오라클학원,SQL학원,SQL동영상

 오라클PLSQL DBMS_SQL 참조커서(REFCURSOR) 실습, 동적SQL,TO_REFCURSOR,오라클교육,SQL교육,JAVA교육,오라클학원,SQL학원,SQL동영상


http://ojc.asia/bbs/board.php?bo_table=LecSQLnPlSql&wr_id=729 


PLSQL DBMS_SQL 참조커서(REFCURSOR) 실습, 동적SQL,TO_REFCURSOR,오라클교육,SQL교육,JAVA교육,오라클학원,SQL

PLSQL DBMS_SQL 참조커서(REFCURSOR) 실습, 동적SQL,TO_REFCURSOR,오라클교육,SQL교육,JAVA교육,오라클학원,SQL학원,SQL동영상오라클 PL/SQLDBMS_SQL일반커서를 참조커서로 변경리턴하기실습DBMS_SQL 패키지를 이용한

ojc.asia

https://www.youtube.com/watch?v=XJOkRPZYSYo&list=PLxU-iZCqT52CfP98Y4gCDKIm52tKvgy36&index=41 

https://www.youtube.com/watch?v=tO4rkJAC7FM&list=PLxU-iZCqT52CfP98Y4gCDKIm52tKvgy36&index=40 


https://www.youtube.com/watch?v=oR_UKxk_HO4&list=PLxU-iZCqT52CfP98Y4gCDKIm52tKvgy36&index=39 

https://www.youtube.com/watch?v=e9lZ0oZNZDo&list=PLxU-iZCqT52CfP98Y4gCDKIm52tKvgy36&index=38



https://www.youtube.com/watch?v=fYfTQruthLA&list=PLxU-iZCqT52CfP98Y4gCDKIm52tKvgy36&index=36 


DBMS_SQL 패키지를 이용한 참조커서(REF CURSOR)


  • 기본적으로 DBMS_SQL 패키지는 동적 SQL을 사용하여 DML(데이터 조작 언어) 또는 DDL(데이터 정의 언어) 문을 구문 분석, 실행, 데이터 조작할 수 있는 인터페이스를 제공한다.


  • DBMS_SQL 패키지의 PARSE 프로시저를 사용하여 SQL 구문을 파싱하며, DDL의 경우 별도의 EXECUTE 프로시저를 호출하지 않아도 된다.


  • ORACLE 11g이후 DBMS_SQL의 TO_REFCURSOR를 이용하여 일반 커서를 참조커서(REF CURSOR)로  변경할 수 있다.


  • 일반 커서는 정적이며 커서가 한번 SQL 영역을 가리키면 가리키는 곳을 변경 못한다. 하지만  참조커서(REF CURSOR)는 가능하다.


  • 일반 커서가 가리키는 데이터는 함수나 프로시저를 호출한 곳으로 리턴 할 수 없지만 참조커서(REF CURSOR)가 가리키는 데이터는 리턴하는 것이 가능하다.




[실습 : DBMS_SQL로 일반커서를 참조커서로 변환하고 리턴]

-- 이번에는 REF CURSOR를 리턴해 보자.

-- 아래처럼 함수의 리턴타입을 SYS_REFCURSOR로 하고 v_rc 변수의 타입도 SYS_REFCURSOR로 주면 된다. 

CREATE OR REPLACE FUNCTION emplist (p_deptno emp.deptno%TYPE)

        RETURN SYS_REFCURSOR

    IS

           v_sql     CLOB;

           v_cursor  PLS_INTEGER;

           v_rc      SYS_REFCURSOR;  --REF CURSOR형

           v_execute PLS_INTEGER;

       BEGIN

          v_cursor := DBMS_SQL.OPEN_CURSOR;

          v_sql :='SELECT * FROM emp WHERE deptno = :d';

 

         -- Dynamic SQL문 파싱

         DBMS_SQL.PARSE(v_cursor, v_sql, DBMS_SQL.NATIVE);

 

         -- 바인드변수 바인딩

         DBMS_SQL.BIND_VARIABLE(v_cursor, 'd', p_deptno);

 

         -- SQL문 실행

         v_execute := DBMS_SQL.EXECUTE(v_cursor);

 

         -- REF CURSOR로 변환

         v_rc := DBMS_SQL.TO_REFCURSOR(v_cursor);

 

         return v_rc;

      END;

     /


함수가 생성되었습니다.


set autoprint on

variable refcur refcursor

exec :refcur := emplist(20);


     EMPNO ENAME      JOB          MGR   HIREDATE     SAL      COMM     DEPTNO

     -----------------------------------------------------------------------------------------------------

      7782   CLARK      MANAGER    7839     81/06/09     3404.4               10

      7839   KING       PRESIDENT             81/11/17     6946.8               10

      7934   MILLER     CLERK        7782     82/01/23     2257.5               10



 

#PLSQL, #DBMS_SQL, #참조커서, #REFCURSOR, #동적SQL, #TO_REFCURSOR,#오라클교육,#SQL교육,#JAVA교육,#오라클학원,#SQL학원,#SQL동영상, PLSQL, DBMS_SQL, 참조커서, REFCURSOR, 동적SQL, TO_REFCURSOR,오라클교육,SQL교육,JAVA교육,오라클학원,SQL학원,SQL동영상,  

댓글 없음:

댓글 쓰기

(C#교육동영상)C# ADO.NET 실습 ODP.NET/ODAC 설치 오라클 함수 호출 실습, C#학원, WPF학원, 닷넷학원, 자바학원

  (C#교육동영상)C# ADO.NET 실습  ODP.NET/ODAC 설치  오라클 함수 호출 실습, C#학원, WPF학원, 닷넷학원, 자바학원 https://www.youtube.com/watch?v=qIPU85yAlzc&list=PLxU-i...