【发布时间】:2014-01-15 17:56:49
【问题描述】:
我试图在informix 中创建一个示例存储过程,但它给了我一个语法错误。谁能说说这有什么问题?
drop procedure if exists sample();
create dba procedure sample()
update employee set last_name="Tietz" where emp_id = '2537';
end procedure;
谢谢
【问题讨论】:
-
在 SQL 中避免使用
"字符串分隔符。使用标准'。包括 Informix 在内的一些数据库可以很好地与"配合使用,但它不是标准的。 -
对我来说
emp_id看起来像SERIAL或其他数字字段。如果它是数字,那么您可以简单地使用emp_id = 2537; -
感谢您的回复。
drop procedure if exists sample(); create dba procedure sample() end procedure;和update employee set last_name='Tietz' where emp_id = '2537';分别工作正常,但组合时,它们会给我一个语法错误。我很困惑... -
这真的取决于您用来运行此类 SQL 的工具/驱动程序。一些驱动程序能够一次运行多条 SQL 语句,而另一些驱动程序只能运行一条语句。我使用 Informix ODBC 和 JDBC 驱动程序,它们可以一次运行许多语句。您的示例适用于我使用的工具(我删除了
IF EXISTS,因为我使用了IBM Informix Dynamic Server Version 11.50.FC4)。