DECLARE
v_var1 := varchar2(100);
v_var2 := varchar2(100);
v_var3 := varchar2(100);
v_var4 := varchar2(100);
BEGIN
v_var1 := 'col';
v_var2 := 'val1';
v_var3 := 'val2';
v_var4 := 'vall3';
EXECUTE IMMEDIATE 'UPDATE TABLENAME SET '|| v_var1 ||' = :v_var2 WHERE ID = :v_var3 AND COUNTRY = :v_var4'
USING v_var2,v_var3,v_var4;
END;
是否可以将列设置为动态更新?抛出错误
ORA-06550:第2行,第8列:PLS-00103:遇到了符号“ =” 当期望以下其中之一时
。检查了其他帖子,但仅能找到如何动态传递表名。这个脚本有什么问题吗?
答案 0 :(得分:0)
您的代码必须是这样的:
DECLARE
v_var1 varchar2(100);
v_var2 varchar2(100);
v_var3 varchar2(100);
v_var4 varchar2(100);
BEGIN
v_var1 := 'col';
v_var2 := 'val1';
v_var3 := 'val2';
v_var4 := 'vall3';
...
或
DECLARE
v_var1 varchar2(100) := 'col';
v_var2 varchar2(100) := 'val1';
v_var3 varchar2(100) := 'val2';
v_var4 varchar2(100) := 'vall3';
BEGIN
...