无法将值存储到'名称' array.Please帮我解决错误。
declare
type name is varray(50) of varchar2(10);
abc varchar2(50);
names name:=name();
begin
for i in 0..4
loop
select cname into abc from customer where cid=1;
names(i):=abc;
dbms_output.put_line(names(i));
end loop;
end;
我是pl / sql的新手,我正在尝试向我的数组添加元素,但是我收到了一些错误,如下所示。
ORA-06532:超出限制的下标
答案 0 :(得分:2)
PL / SQL中的循环需要从1开始。
此外,在保存值之前,您需要extend
记录变量。
此外,您的类型为varray(50) of VARCHAR2(10)
,而abc
的大小为50。
declare
type name is varray(50) of varchar2(50);
abc varchar2(50);
names name:=name();
begin
for i in 1..4
loop
select cname into abc from customer where cid=1;
names.extend(1);
names(i):=abc;
dbms_output.put_line(names(i));
end loop;
end;
为什么需要EXTEND
- Standard Oracle DOC
答案 1 :(得分:0)
declare
type name is varray(50) of varchar2(10);
abc varchar2(50);
names name:=name();
begin
for i in 1..4
loop
select cname into abc from customer where cid=1;
names.extend;
names(i):=abc;
dbms_output.put_line(names(i));
end loop;
end;
1)数组从1开始。
2)type name is varray(50) of varchar2(10);
表示数组的最大长度为50与初始长度无关。