v_afterProcSql := 'BEGIN ' || v_afterProcNm || '(''' || P_COMP_CD || ''', ''' || P_DOC_NO || ''', ''' || P_DOC_STAT || ''', ''' || P_MANAGERID || ''' ,v_err_code1, v_err_msg1);' || ' END;';
이런식으로 동적으로 프로시져 실행문 만들고
EXECUTE IMMEDIATE v_afterProcSql;
실행시키는데
v_err_code1,v_err_msg1 두개가 각프로시져 리턴값담는 건데
ORA-06550: 줄 1, 열77:PLS-00201: 'V_ERR_CODE' 식별자가 정의되어야 합니다
이런식으로 메세지가 나옵니다.
결과값을 받으려면 어떻게 해야될까요? 저리턴변수도 동적으로 만들어야될까요?
그럼 제가 원하는건
A라는 프로시져안에사 B를 동적으로 호출한다음 B의 결과값을 A라는 프로시져에서 받아볼수있나요?
EX
CREATE OR REPLACE PROCEDURE A
(
)
IS
v_err_code VARCHAR2(100);
....
BEGIN
V_afterProcSql := 'Declare v_err_code1 varchar2(200); v_err_msg1 varchar2(200);BEGIN ' || v_afterProcNm || '(''' || P_COMP_CD || ''', ''' || P_DOC_NO || ''', ''' || P_DOC_STAT || ''', ''' || P_MANAGERID || ''' ,v_err_code1, v_err_msg1); dbms_output.put_line(v_err_msg1);' || ' END;';
EXECUTE IMMEDIATE v_afterProcSql;
dbms_output.put_line(v_err_code1);
--신핼한 프로고시져 결과값
v_err_code := v_err_code1;
dbms_output.put_line(v_err_code);
END;