code

Oracle SQL Developer에서 Refursor 결과/출력을 확인하는 방법은 무엇입니까?

starcafe 2023. 8. 1. 20:40
반응형

Oracle SQL Developer에서 Refursor 결과/출력을 확인하는 방법은 무엇입니까?

중복 가능성:
오라클 패키지 프로시저에서 결과를 얻는 가장 좋은 방법/도구
Oracle SQL 개발자:REFURSOR 결과를 그리드에 표시하시겠습니까?

Oracle SQL Developer가 처음입니다.Oracle SQL Developer Version 3.0을 사용하고 있습니다.다음 쿼리를 사용하여 SP를 테스트하려고 했습니다.

DECLARE
  type output_cursor is ref cursor;
  P_CURSOR output_cursor;
BEGIN
  P_CURSOR := NULL;
  myPackage.mySPTest (  P_NOTIFICATION_ID => 1975357,P_CURSOR => P_CURSOR) ;
END;

Oracle SQL Developer에서 위 쿼리를 실행했을 때 'anonymus block completed'라는 메시지가 표시되지만 결과가 나타나지 않습니다.

누가 나를 도와줄 수 있습니까? 어떻게 결과를 볼 수 있습니까?

.

SQL Developer에서 선언된 바인딩 변수를 사용하여 다음과 같은 결과를 유지하고 표시할 수 있습니다.

var r refcursor;
exec myPackage.mySPTest(P_NOTIFICATION_ID => 1975357, P_CURSOR => :r);
print r;

exec는 익명 블록의 줄임말이므로 다음과 같습니다.

var r refcursor;
begin
    myPackage.mySPTest(P_NOTIFICATION_ID => 1975357, P_CURSOR => :r);
end;
/
print r;

~하지 않는 한P_CURSOR도움이 되지 않는 것으로 선언되었습니다, 아마도...

커서 결과를 보려면 커서를 반복하여 표시하고 값을 인쇄해야 합니다.커서가 반환하는 열 이름을 알아야 합니다.다음과 같은 작업을 수행할 수 있습니다.

DECLARE
   type output_cursor is ref cursor;
   P_CURSOR output_cursor;
BEGIN
   P_CURSOR := NULL;
   DOCTORS_APP.get_reminders (  P_NOTIFICATION_ID => 1975357,P_CURSOR => P_CURSOR) ;
   //replace Column1 and Column2 with actual column names
   FOR CUR_VAL in P_CURSOR LOOP
        DBMS_OUTPUT.PUT_LINE(CUR_VAL.Column1||' '||CUR_VAL.Column2);
   END LOOP;
 END;

언급URL : https://stackoverflow.com/questions/8610495/how-to-see-refcursor-result-output-in-oracle-sql-developer

반응형