我在PL / SQL上练习集合,现在我编写了一个简单的WHILE循环来在屏幕上打印稀疏关联数组的值。我收到以下错误:Oracle错误-06502:PL / SQL:数字或值错误:NULL索引表键值。结果打印在屏幕上,但也有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;
Informe de error - ORA-06502:PL / SQL:数字或值错误:NULL 索引表键值ORA-06512:在第48行 06502. 00000 - " PL / SQL:数字或值错误%s" *原因:算术,数字,字符串,转换或约束错误 发生了。例如,如果尝试,则会发生此错误 将值NULL赋给声明为NOT NULL的变量,或者如果是 尝试将大于99的整数分配给变量 声明NUMBER(2)。 *操作:更改数据,如何操作或如何声明数据 这些值不会违反约束条件。
Kone Yapi Yapo Drogba Kone Dindane Toure Eboue
答案 0 :(得分:4)
您的app.UseCookieAuthentication(new CookieAuthenticationOptions()
{
AutomaticAuthenticate = true,
AutomaticChallenge = true,
LoginPath = "/Account/Login"
});
循环条件不正确。
您需要检查WHILE
是否为非NULL,而不是v_counter
是非NULL。
循环的最后一次,v_costademarfil_2006(v_counter)
为NULL,因此评估v_counter
。这会在打印完所有名称后导致错误。