初步了解,你的意思是想把表名字作为一个参数传入存储,然后从中查询数据再插入另外一张同结构的表。由于你传入的表名字是字符串,存储过程是不能直接用字符串拼接sql语句运行的,建议存储过程内部生命字符串变量,先组装成查询语句Script字符串,然后用
Open emp_cur For Script;
Loop Fetch emp_cur Into my_record ;
Exit When emp_cur %Notfound;
inset........;
End loop;
Close Mycursor
我想问的是怎么实现datatable参数传递,
create or replace procedure emp_addmembers_proc(p_dt in emp_addmembers) as
cursor emp_cur is
select * from p_dt;
my_record emp_cur%rowtype;
begin
open emp_cur;
loop
fetch emp_cur
into my_record;
insert into emp
(eid, ename, job, sal)
values
(my_record.eid, my_record.ename, my_record.job, my_record.sal);
end loop;
close emp_cur;
end;
这是我的存储过程,emp_addmembers是自定义的与我要传递的datatable格式相同的表类型,但编译报错,提示表或视图不存在,游标声明不完整!