在做C#開發,通過存盤程序完成多條表資料的插入,想直接把要插入的資料以datatable表的形式作為引數傳遞給存盤程序,請問該如何實作?存盤程序該如何寫?
uj5u.com熱心網友回復:
拼接成這樣的insert into t()
select c11, c21 from dual union all
select c12, c22 from dual
uj5u.com熱心網友回復:
可以 要用動態sqluj5u.com熱心網友回復:
能不能給個案例!uj5u.com熱心網友回復:
1# 就是案例
uj5u.com熱心網友回復:
http://blog.csdn.net/mchdba/article/details/52010323看下這個;有問題留言
uj5u.com熱心網友回復:
我想問的是怎么實作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格式相同的表型別,但編譯報錯,提示表或視圖不存在,游標宣告不完整!
uj5u.com熱心網友回復:
上面的p_dt in emp_addmembers 改成p_dt in varchar2 就行 你試試uj5u.com熱心網友回復:
你的意思是,你想傳入一個表名,然后這個表名跟你想要的表的定義是一樣的 然后用游標一直在那插入資料這樣對吧uj5u.com熱心網友回復:
是的,不知道這樣可不可行!
uj5u.com熱心網友回復:
跪求指教啊!uj5u.com熱心網友回復:
初步了解,你的意思是想把表名字作為一個引數傳入存盤,然后從中查詢資料再插入另外一張同結構的表。由于你傳入的表名字是字串,存盤程序是不能直接用字串拼接sql陳述句運行的,建議存盤程序內部生命字串變數,先組裝成查詢陳述句Script字串,然后用Open emp_cur For Script;
Loop Fetch emp_cur Into my_record ;
Exit When emp_cur %Notfound;
inset........;
End loop;
Close Mycursor
uj5u.com熱心網友回復:
轉成JSON吧,那樣就可以了。轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/71799.html
標籤:開發
上一篇:DataFactory連接oracle報錯 NO access library for'or84d.dll'
下一篇:關于OCP考試
