我正在练习 PL/SQL 中的集合,现在我已经编写了一个简单的 WHILE 循环来打印稀疏关联数组的值。我收到了以下错误提示:Oracle Error -06502: PL/SQL: numeric or value error: NULL index table key value。结果被打印在屏幕上,但同时也出现了 Oracle 错误。谢谢。
SET SERVEROUTPUT ON
DECLARE
TYPE type_football_players IS TABLE OF VARCHAR2(45)
INDEX BY PLS_INTEGER;
v_costademarfil_2006 type_football_players;
v_counter PLS_INTEGER;
BEGIN
v_costademarfil_2006(9) := 'Kone';
v_costademarfil_2006(10) := 'Yapi Yapo';
v_costademarfil_2006(11) := 'Drogba';
v_costademarfil_2006(14) := 'Kone';
v_costademarfil_2006(15) := 'Dindane';
v_costademarfil_2006(19) := 'Toure';
v_costademarfil_2006(21) := 'Eboue';
v_counter := v_costademarfil_2006.FIRST;
WHILE v_costademarfil_2006(v_counter) IS NOT NULL
LOOP
DBMS_OUTPUT.PUT_LINE(v_costademarfil_2006(v_counter));
v_counter := v_costademarfil_2006.NEXT(v_counter);
END LOOP;
END;
Error report - ORA-06502: PL/SQL: 数字或值错误: 空索引表键值 ORA-06512: 位于第48行 06502. 00000 - "PL/SQL: numeric or value error%s" *原因:出现算术、数字、字符串、转换或约束错误。例如,如果将值NULL赋给已声明为NOT NULL的变量,或者将大于99的整数分配给声明为NUMBER(2)的变量,则会出现此错误。 *操作:更改数据、操作方式或声明方式,以使值不违反约束条件。
Kone Yapi Yapo Drogba Kone Dindane Toure Eboue