2014-12-04 98 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