我在我的PLSQL函数中发送一个参数,它是表的名字。 在我的代码中,我想插入到参数中正在接收的表中。PLSQL变量插入
当我键入INSERT语句
insert into TABLE_VARIABLE_NAME
VALUES (1, 2, 3);
它给表的误差不存在。 如何使用Table's Name作为函数的参数?
我在我的PLSQL函数中发送一个参数,它是表的名字。 在我的代码中,我想插入到参数中正在接收的表中。PLSQL变量插入
当我键入INSERT语句
insert into TABLE_VARIABLE_NAME
VALUES (1, 2, 3);
它给表的误差不存在。 如何使用Table's Name作为函数的参数?
以下是完整的演示代码,你可以尝试一下,甚至上面的提示是绝对正确的,我只是插入值阐述了它更多的为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')
是否有任何SQL注入风险? – clq 2015-10-15 14:20:51
您需要动态SQL并立即执行。
execute immediate 'insert into ' || l_var_name || 'values (1,2,3)'
它的正确和将工作得很好,你可以看到完整的演示值为varchar2 – 2014-12-05 05:21:59
可以更精细它更好回答一些示例代码 – 2014-12-05 04:25:34