프로시저 파라미터 디폴트 문의드립니다. 0 2 2,907

by DB초보자입니다 [PL/SQL] [2020.03.12 14:34:12]


PROCEDURE PC_TEST(  IN_PRO_TP       IN VARCHAR2             

                  , IN_DEFAULT      IN VARCHAR2 DEFAULT '12345'                                             

                  , OUT_CURSOR      OUT SYS_REFCURSOR

     )

IS                                                                                                                      

    V_CS        SYS_REFCURSOR;    

BEGIN                                                                                                                   

    BEGIN

    

     OPEN V_CS FOR

     SELECT IN_PRO_TP

          , IN_DEFAULT

       FROM DUAL;

            

    END;                                                                                                                

                                                                                                                        

    OUT_CURSOR    := V_CS;                                                                                               

END PC_TEST;  

 

 

VAR OUTCURSOR REFCURSOR;

 

EXEC PC_TEST('123',:OUTCURSOR)

 

ORA-06550: 줄 1, 열18:PLS-00306: 'PC_TEST' 호출 시 인수의 갯수나 유형이 잘못되었습니다

ORA-06550: 줄 1, 열18:PL/SQL: Statement ignored

디폴트 값이 있어도 필수로 파라미터 갯수로 넘겨줘야되면 디폴트값은 의미 없지않나요??

by 마농 [2020.03.12 15:30:23]

○ 다음 두가지 방법 테스트 해보세요.
1. 변수 선언시 디폴트 변수를 제일 마지막에 선언하는 방법
2. 호출시 변수를 지정하여 호출하는 방법 (OUT_CURSOR => :OUTCURSOR)


by DB초보자입니다 [2020.03.12 16:35:10]

호출 시  변수를 지정해서 넘기거나

마지막에 있으면되네요ㅠㅠ

지식이 짧은데 늘 구루비와 마농님께 감사드립니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입