ID、FirstName、LastName という属性を持つ PhoneBook というテーブルがあります。VARRAY を作成し、カーソルを使用して PhoneBook テーブル内のすべての firstNames を VARRAY にフェッチしたい 5 つのレコードがあります。これが私のコードです:
DECLARE
v_FirstName PHONEBOOK.FIRSTNAME%TYPE;
TYPE arrayNames IS VARRAY(10) OF VARCHAR2(20);
v1 arrayNames;
i INT := 0;
CURSOR c_phonebook IS SELECT FIRSTNAME FROM PHONEBOOK;
BEGIN
v1 := arrayNames();
OPEN c_phonebook;
LOOP
FETCH c_phonebook INTO v_firstname;
v1(i) := v_firstname;
i := i+1;
EXIT WHEN c_phonebook%NOTFOUND;
END LOOP;
CLOSE c_phonebook;
END;/
このコードをコンパイルすると、エラーが発生しました。
ORA-06532: 添え字が制限外です ORA-06512: 14行目06532.00000 - 「添え字が制限外です」 *原因: 添え字がVARRAYの制限を超えているか、VARRAYまたはNESTED TABLEの値が正ではありません。*処置: プログラム・ロジックを確認し、必要に応じてVARRAY制限を増やしてください。
この問題を解決するのを手伝ってください。ありがとうございました