|
|
1
2
不能这样传递参数
|
|
|
2
3
您得到的错误是因为动态语句的结尾不应该有分号。这是一个客户端语句分隔符,不是语句本身的一部分,而execute immediate只接受一个语句。(是否得到“ORA-00933:SQL命令未正确结束”或“ORA-00911:invalid character”取决于您的Oracle版本)。
但是,当这些语句被执行时,它们是在一个单独的SQL上下文中执行的,该上下文不具有PL/SQL变量和过程参数的可见性或知识。它将试图,但失败,去解释
您可以直接在参数中连接,如所建议的@(但仍然没有分号):
等等,因为需要正确处理日期,所以与其他数据类型相比会稍微复杂一些。
但是最好使用bind变量;这意味着
|
|
3
2
|
|
|
Al007 · Oracle触发器给出未知错误 9 年前 |