프로시저에서 패키지에 있는 프로시저 호출 질문입니다. 0 1 5,569

by 손님 [PL/SQL] [2009.09.21 10:44:43]


아래는 MAIN 프로시저에서 PACKAGE에 생성되어 있는 프로시저를 호출하는 방법입니다.

============================================================

create or replace procedure MAIN is

errorCD varchar2(500);

errorMsg varchar2(500);

begin

    execute immediate [PACKAGE_NAME].[SUB_PROCEDURE_NAME]( errorCD, errorMsg);

end MAIN;/

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

create or replace package PACKAGE_NAME

as

    procedure SUB_PROCEDURE_NAME(

        errorCD OUT varchar2

       ,errorMsg OUT varchar2

    );

end PACKAGE_NAME;/

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

create or replace package body PACKAGE_NAME

as

    procedure SUB_PROCEDURE_NAME(

        errorCD  OUT varchar2

       ,errorMsg OUT varchar2

    ) IS

    begin

        insert into tmp_table

        as

        select * from dual;

    end SUB_PROCEDURE_NAME;

end PACKAGE_NAME;/

============================================================

위와 같이 프로시저와 패키지를 생성하고

MAIN 프로시저를 컴파일하면

PLS-00222: ’SUB_PROCEDURE_NAME’라는 이름의 함수는 범위 내에 존재하지 않습니다.

라는 Oracle Error가 납니다.

생소한 에러 메시지여서 어떻게 대처해야 할지 난감하네요.

에러가 나는 원인은 무엇이며

프로시저에서 패키지의 프로시저를 호출하는 방법을 알고 싶습니다.

by 초보 [2009.09.21 11:31:40]
호출은...
begin

[PACKAGE_NAME].[SUB_PROCEDURE_NAME]( errorCD, errorMsg);

end MAIN;/
이렇게 하면 되는거 아닌가요 ^^*
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입