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)テストコード
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;
その原因は何ですか?今後の問題でこれをどのように解決できますか? ありがとうございました:)