Informix 12.10创建存储过程时DEFINE语句报语法错误求助
Informix 12.10存储过程DEFINE语句语法错误解决方案
在Informix 12.10中创建包含DEFINE语句的存储过程时会触发语法错误,比如执行以下代码:
CREATE PROCEDURE migrate_table() DEFINE f_number INTEGER; END PROCEDURE;
会收到错误提示:
Error occurred during SQL script execution Razón: SQL Error [42000]:
A syntax error has occurred.
但空存储过程却能正常执行:
CREATE PROCEDURE migrate_table() END PROCEDURE;
解决方法
在CREATE PROCEDURE后显式指定存储过程使用SPL语言,修正后的代码如下:
CREATE PROCEDURE migrate_table() LANGUAGE SPL DEFINE f_number INTEGER; END PROCEDURE;
原因说明
Informix支持多种存储过程语言(如SPL、Java),如果不指定语言,数据库无法识别SPL专属的DEFINE变量定义语句,从而触发语法错误。空存储过程没有SPL特定语法,所以能通过语法校验。
内容的提问来源于stack exchange,提问作者diminuta
相关产品推荐
相关产品推荐

