아래는 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가 납니다.
생소한 에러 메시지여서 어떻게 대처해야 할지 난감하네요.
에러가 나는 원인은 무엇이며
프로시저에서 패키지의 프로시저를 호출하는 방법을 알고 싶습니다.