2014-12-04 174 views
0

我在我的PLSQL函數中發送一個參數,它是表的名字。 在我的代碼中,我想插入到參數中正在接收的表中。PLSQL變量插入

當我鍵入INSERT語句

insert into TABLE_VARIABLE_NAME 
VALUES (1, 2, 3); 

它給表的誤差不存在。 如何使用Table's Name作爲函數的參數?

+0

可以更精細它更好回答一些示例代碼 – 2014-12-05 04:25:34

回答

2

以下是完整的演示代碼,你可以嘗試一下,甚至上面的提示是絕對正確的,我只是插入值闡述了它更多的爲VARCHAR2: -

create table td (valued varchar2(10)); 

create or replace procedure dhar_conn(tname varchar2) 
as 
begin 
    execute immediate 'insert into '||tname||' values(''1'')'; 
commit; 
end;/ 

execute dhar_conn('td') 
+0

是否有任何SQL注入風險? – clq 2015-10-15 14:20:51

2

您需要動態SQL並立即執行。

execute immediate 'insert into ' || l_var_name || 'values (1,2,3)' 
+0

它的正確和將工作得很好,你可以看到完整的演示值爲varchar2 – 2014-12-05 05:21:59