sys_refcursor 사용시 결과값 확인하는 방법은? 0 2 10,735

by DJ메탈짱™ [SQL Query] sys_refcursor [2009.11.22 14:48:52]


동적으로 select 쿼리를 작성하여 실행시킨 결과를 sys_refcursor 
반환받는 프로시저를 생성하여 사용하고 있는데요.

프로시저 생성시 결과값을 조회하기 위해 dbms_output.put_line(' 쿼리결과리스트 ==> ' || 커서변수)

이런식으로 동적으로 쿼리 string을 put_line으로 찍어낸후
 
찍어낸 select 쿼리를 다시 실행시켜 결과값을 확인하는데요.

프로시저를 작성하기 이전에 단순히 select 쿼리를 작성하면서 테스트를 하고 싶은데.

반드시 위와 같이 프로시저 생성 -> string 출력 --> string 결과 실행 이런 번거로움을  거쳐야 하는데.

사용툴은 Toad를 사용하고 있습니다.

혹시 sys_refcursor를 사용하는 경우 select 하는 것과 같은 결과를 확인할 수는 없나요?

CURSOR cv_1 IS
   select 어쩌루 저쩌구 from 테이블;

BEGIN
        -- Cursor를 FOR문에서 실행시킨다
        FOR cv_1 IN LOOP
          DBMS_OUTPUT.PUT_LINE('TOTAL_CCNT : ' || cv_1.TOTAL_CCNT);
          DBMS_OUTPUT.PUT_LINE('TODAY_CCNT : ' ||  cv_1.TODAY_CCNT);
          DBMS_OUTPUT.PUT_LINE('MON : ' || cv_1.MON);
          DBMS_OUTPUT.PUT_LINE('TUE : ' || cv_1.TUE);
          DBMS_OUTPUT.PUT_LINE('WED : ' || cv_1.WED);
          .
          .
          .
end;

이런식으로 일일이 다 찍어가며 확인을 해야만 할까요?

by 마농 [2009.11.23 08:17:16]

by DJ메탈짱™ [2009.11.23 08:56:32]
===========================================================
ref cursor 를 out으로 받는 팩키지 바디(프로시져)라면..
variable변수를 쓰시면 됩니다.땡땡이(:) !!!
Exec pkgTest.Select( :C ); <- 그냥 이렇게 땡땡이(:)변수명(아무거나)
이렇게 하시고 Exec pkgTest.Select( :C ); 선택된 상태에서 Ctrl + Enter 하시거나
한줄 내리셔서 Exec의 E자 아래서 Ctrl + Enter 치시면...
Variable 창이 뜹니다. 거기서 Cursor를 선택하시면 실행됩니다.
Data Grid 보시면 됩니다 ^^;;;
===========================================================
마농님께서 찾아주신 글을 보니... 이렇게 댓글을 달아주셨는데.
커서를 선택한다는게 이해가 되지를 않네요...
Variable 창 뜨면 좌측에 :C 변수만 나오던데...그리고 값을 입력하는 창이 나오고요.. 제가 이해를 못하고 있는건가요...ㅜ.ㅜ
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입