如何接收过程为table类型的输出参数
建表语句:
create table employee is(
id number not null,
name varchar2(20) not null,
salary number not null
);
表插入值语句:
declare
begin
for i in 1..10 loop
insert into employee(id,name,salary) values(i,i,i);
end loop;
end;
create or replace package my_package is
type my_record is record is(
id employee.id%type,
name employee.name%type,
salary employee.salary%type,
);
type my_table is table of my_record index by binary_integer;
procedure pro_test(p_rec out my_table);
end my_package ;
create or replace package body my_package is
procedure pro_test(p_rec out my_table);
begin
for i in 1..10 loop
p_rec(i).id:=i;
p_rec(i).name:=i;
p_rec(i).salary=i;
insert into employee(id,name,salary) values (p_rec(i).id,p_rec(i).name,p_rec(i).salary);
dbms_output.put_line('id is: '||p_rec(i).id,);
end loop;
commit;
end pro_test;
end my_package ;
这个包可以正常编译,(如果你copy这个包的代码编译有错,那是我在家里电脑敲错了,在公司电脑可以正常编译)
我是pl/sql中调用这个过程,报错
declare
type my_record2 is record is(
id employee.id%type,
name employee.name%type,
salary employee.salary%type,
);
type my_table2 is table of my_record2 index by binary_integer;
begin
my_package.p_rec(my_table2);
/*
for i in 1..10 loop
y_package.p_rec(my_table2(i));
end loop;
*/
end;
哪位帮帮我啊????