我在我的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