我有这么简单的程序和TYPETEST表类型。
create or replace PROCEDURE TESTPROCEDURE (dayName out TYPETEST )IS
BEGIN
dayName(1):='Monday';
dayname(2):='1';
dayname(3):='good';
END TESTPROCEDURE;
CREATE OR REPLACE TYPE TYPETEST AS TABLE OF varchar2(50);
它正常编译,但是当我运行它时,它会给出这样的异常:
" ORA-06531:参考未初始化的集合"。
你能帮我吗?
答案 0 :(得分:3)
初始化dayName并将其扩展(每次为1或开头为3):
CREATE OR REPLACE PROCEDURE TESTPROCEDURE (dayName out TYPETEST )IS
BEGIN
dayName := typetest();
dayName.extend(3);
dayName(1):='Monday';
dayname(2):='1';
dayname(3):='good';
END TESTPROCEDURE;
测试:
declare
t typetest;
begin
TESTPROCEDURE(t);
for i in 1..t.count() loop
dbms_output.put_line(t(i));
end loop;
end;
输出:
Monday
1
good