레이블이 오라클참조커서인 게시물을 표시합니다. 모든 게시물 표시
레이블이 오라클참조커서인 게시물을 표시합니다. 모든 게시물 표시

2021년 12월 25일 토요일

오라클 참조커서, RefCursor, 자바JDBC에서 오라클함수리턴값받기, SQL교육, SQL학원, 오라클교육, 오라클학원, 자바교육, 자바학원,JAVA학원

 

오라클 참조커서, RefCursor, 자바JDBC에서 오라클함수리턴값받기, SQL교육, SQL학원, 오라클교육, 오라클학원, 자바교육, 자바학원,JAVA학원


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


오라클 참조커서, RefCursor, 자바JDBC에서 오라클함수리턴값받기, SQL교육, SQL학원, 오라클교육, 오

오라클 참조커서, RefCursor, 자바JDBC에서 오라클함수리턴값받기, SQL교육, SQL학원, 오라클교육, 오라클학원, 자바교육, 자바학원오라클 PL/SQL참조커서(Ref Cursor)참조커서로 SELECT결과를 클라이언트로

ojc.asia

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

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

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

https://www.youtube.com/watch?v=8hc030THr8w&list=PLxU-iZCqT52CfP98Y4gCDKIm52tKvgy36&index=16 


오라클 PL/SQL



참조커서(Ref Cursor)

참조커서로 SELECT결과를 클라이언트로 리턴

자바JDBC에서 Ref Cursor로 리턴받기




참조커서(REF CURSOR)


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



Declare
   Type refcur is ref cursor;
   cursor c is select * from dual;
   myCur refCur;
begin
  --myCur는 ref cursor
if (to_char(sysdate,'DY') = '일') then
    open myCur for select * from emp;
elsif (to_char(sysdate,'DY') != '일') then
    open myCur for select * from dept;
end if;
open c;  -- 일반커서
end;
/

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



-- 커서를 리턴할 수 있는 함수를 만든다. 

CREATE OR REPLACE FUNCTION emptest(v_deptno in number) RETURN SYS_REFCURSOR    AS

       test_cursor SYS_REFCURSOR;

       sql_string Varchar2(500);

BEGIN

       sql_string := 'Select empno, ename, sal from Emp where deptno = :deptno' ;

       Open test_cursor FOR sql_string USING v_deptno;

       RETURN test_cursor;

       CLOSE test_Cursor;

  END;

  /


variable a refcursor ;

exec :a := emptest(20) ;

print a;



EMPNO ENAME             SAL

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

      7566 JONES            2975

      7788 SCOTT            3000

      7876 ADAMS            1100

      7902 FORD             3000


-- JAVA/JSP등에서 확인


                Class.forName(driver_name); //jdbc 드라이버연결

                conn =  DriverManager.getConnection(url,user,pwd); //Connection인수 입력

               

                String proc_call = "{? = call emptest(?)}";

             

                // 오라클 함수 또는 프로시저를 호출하기 위해 callable statement를 이용

                CallableStatement cstmt = conn.prepareCall(proc_call);

 

                // key here is to register the output parameter

                // of type cursor, execute, then cast it as a ResultSet.

                -- emptest 함수의 output 파라미터 타입을 CURSOR로 한다.

                -- 첫번째  ?가 출력파라미터, 두번째 파리미터는 입력파라미터

                cstmt.registerOutParameter(1, OracleTypes.CURSOR);

                cstmt.setInt(2, 10);  //10번 부서의 데이터 얻기 위해

                cstmt.executeQuery();


                rs = (ResultSet)cstmt.getObject(1);

                while(rs.next()) {

                        out.println(rs.getString("ename") + "<br>");

                        ……

                }



#참조커서, #오라클참조커서, #RefCursor, #오라클커서, #커서란, #SQL교육, #SQL학원, #오라클학원, #오라클교육, #자바교육, #자바학원, #오라클동영상, 참조커서, 오라클참조커서, RefCursor, 오라클커서, 커서란, 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...