안녕하세요. 몇일을 들여다봐도 답이 없어서 답답한 맘에 문의 드립니다.
이렇게 사용한 경우는 첨이라 어떻게 해야 될지 모르겠네요 아래와 같은 오류가 납니다.
이게 오라클에서 이런식으로 사용했던건데 티베로로 이전하면서 패키지를 사용할수 없게되면 이 안에있는 많은 패키지안 프로시저들을 다 바꿔줘야 합니다.
제발 도와주세요 ㅠㅠ
[23:28:15.851] Undefined identifier 'SP_TEST'.
at line 28, column 1 of null:
SP_TEST(l_emp, lngRtn);
^^^^^^^^^^^^^^
프로시저 안에서 패키지를 호출을 하는데 이 패키지를 호출할때 패키지를 글로벌로 선언한 레코드를 파라미터로 넘깁니다.
l_emp PKG_RECORD.PKG_TEST;
SP_TEST(l_emp, lngRtn);
l_emp PKG_RECORD.PKG_TEST; 이부분을 아래와 같이 써도
TYPE PKG_TEST IS RECORD
(
AAA TEST_TABLE.AAA%TYPE DEFAULT NULL,
BBB TEST_TABLE.BBB%TYPE DEFAULT NULL,
CCC TEST_TABLE.CCCC%TYPE DEFAULT NULL
... 100개 항목이 있어 생략
);
create or replace PROCEDURE TEST02( P_DATA IN VARCHAR2 )
is
lngRtn NUMBER;
l_emp PKG_RECORD.PKG_TEST;
BEGIN
l_emp.AAA := '202401';
l_emp.BBB := '4';
SP_TEST(l_emp, lngRtn);
--rollback;
END TEST02;
========================================================================================
CREATE OR REPLACE PACKAGE BODY PKG_TEST AS
PROCEDURE SP_TEST(PKG_RECORD1 IN OUT PKG_RECORD.PKG_TEST, rlngRtn OUT NUMBER );
END PKG_TEST;
========================================================================================
CREATE or REPLACE PACKAGE PKG_RECORD AS
TYPE PKG_TEST IS RECORD
(
AAA TEST_TABLE.AAA%TYPE DEFAULT NULL,
BBB TEST_TABLE.BBB%TYPE DEFAULT NULL,
CCC TEST_TABLE.CCCC%TYPE DEFAULT NULL
... 40개 항목이 있어 생략
);
END PKG_RECORD;