0

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制限を増やしてください。

この問題を解決するのを手伝ってください。ありがとうございました

4

1 に答える 1