【发布时间】:2015-03-16 19:22:36
【问题描述】:
我有两个由“立即执行”函数启动的更新语句。一个工作正常,但另一个抛出 “SQL 命令未正确结束” 错误。
声明工作正常:
EXECUTE IMMEDIATE 'UPDATE myTable SET column_xpto = ' ||my_var|| ' WHERE myTable.name_table = '''||nameT||'''';
声明无效:
EXECUTE IMMEDIATE 'UPDATE myTable SET column_X = ' ||my_other_var|| ' WHERE myTable.name_table = '''||nameT||'''';
变量“my_var”是 NUMBER 类型,而变量“my_other_var”是时间戳 (6),使用 CURRENT_TIMESTAMP 初始化。
desc myTable
Name Null Type
---------------- -------- -------------
NAME_TABLE NOT NULL VARCHAR2(200)
column_xpto NUMBER
column_X TIMESTAMP(6)
有谁知道为什么第二个语句会出错?
【问题讨论】:
-
请编辑您的问题并显示 SQL after 变量替换。
-
... SET column_x = ''' ||my_other_var|| ''' ...为我工作。