In meiner PLSQL-Prozedur versuche ich ein Array mit dem Namen FRAUD_IP_ARRAY
übergeben. Wenn ich die Prozedur kompiliere, erhalte ich keinen Fehler. Wenn ich jedoch versuche, es zu testen, habe ich den Fehler "ORA-O6531:Reference to uninitialized collection error"
. Meine Array-Erstellung, Verfahren und Test Codes sind wie folgt.ORA-O6531: Verweis auf nicht initialisierte Sammlung Fehler
1) Array Creation
CREATE OR REPLACE TYPE FRAUD_IP_ARRAY AS VARRAY(50) OF
VARCHAR2(11);
2) Verfahren (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) Testcode
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;
Also was ist die Ursache dafür und wie kann ich das für anstehende Probleme lösen? Vielen Dank :)