【发布时间】:2010-10-16 08:18:49
【问题描述】:
让我们先创建一个表
create table test
(
id number,
name varchar2(20)
);
现在在插入过程中,我想先将数据保存到变量中,然后像这样动态地将变量传递到 VALUES 子句中:
declare
v_data varchar2(50);
begin
v_data:='1,sunny';
execute immediate 'insert into test values(v_data)';
commit;
end;
但是它显示了一些错误(没有足够的值)......请帮助如何实现这一点??
【问题讨论】:
-
尝试通过执行字符串操作来创建 :dynstmt 字符串,包括 srting 值的引号,然后使用 EXEC SQL EXECUTE IMMEDIATE :dynstmt。请注意,这不是一个好的做法,因为它很容易发生 SQL 注入。
标签: sql database insert dynamic