0
내 PLSQL 프로 시저에서 이름이 FRAUD_IP_ARRAY
인 배열을 전달하려고합니다. 프로 시저를 컴파일 할 때 어떤 오류도 발생하지 않습니다. 그러나 테스트하려고하면 "ORA-O6531:Reference to uninitialized collection error"
오류가 발생합니다. 배열 생성, 절차 및 테스트 코드는 다음과 같습니다.ORA-O6531 : 초기화되지 않은 컬렉션 오류에 대한 참조
1) 배열 생성
CREATE OR REPLACE TYPE FRAUD_IP_ARRAY AS VARRAY(50) OF
VARCHAR2(11);
2) 절차 (SPEC & BODY)
PROCEDURE PR_IP_ONAYLA (P_SIRA_NO_ARR IN FRAUD_IP_ARRAY,
P_GUNC_KULLA_KOD IN VARCHAR2);
PROCEDURE PR_IP_ONAYLA (P_SIRA_NO_ARR IN FRAUD_IP_ARRAY,
P_GUNC_KULLA_KOD IN VARCHAR2) IS
BEGIN
FOR i IN P_SIRA_NO_ARR.FIRST .. P_SIRA_NO_ARR.LAST
LOOP
UPDATE [email protected]_INTERNET_TERS WIP
SET WIP.IP_ONAY_DURUMU='A',
WIP.GUNC_TAR = SYSDATE,
WIP.GUNC_KULLA_KOD = P_GUNC_KULLA_KOD
WHERE WIP.SIRA_NO = P_SIRA_NO_ARR(i);
END LOOP;
END PR_IP_ONAYLA;
3) 시험 CODE
declare
-- Non-scalar parameters require additional processing
p_sira_no_arr fraud_ip_array;
BEGIN
p_sira_no_arr(1):='1';
p_sira_no_arr(2):='2';
-- p_sira_no_arr(1,1):=1;
-- p_sira_no_arr(1,2):=1;
-- Call the procedure
pck_web_fraud_manager.pr_ip_onayla(p_sira_no_arr => p_sira_no_arr,
p_gunc_kulla_kod =>
:p_gunc_kulla_kod);
end;
그래서 그 원인은 무엇이며 앞으로 다가올 문제를 어떻게 해결할 수 있습니까? 고마워요 :)