Informix 错误:发生了语法错误。错误代码:-201
Posted
技术标签:
【中文标题】Informix 错误:发生了语法错误。错误代码:-201【英文标题】:Informix ERROR: A syntax error has occurred. Error Code: -201 【发布时间】:2012-06-28 18:50:04 【问题描述】:我的 SQL 代码中唯一的语句是
DEFINE p_starttime DATETIME YEAR TO SECOND;
我从 Informix 10.5 收到此错误: 错误:发生语法错误。 错误代码:-201
查询 = 将 p_starttime DATETIME 定义为第二年
有人知道为什么会发生这种情况吗?这么简单的一句话。
【问题讨论】:
你需要解释你想要做什么。您只能在存储过程的上下文中定义变量。您需要说明您使用哪种语言或程序来访问数据库。 CREATE FUNCTION 语句可能由于许多不同的原因而失败。 (另外,有趣的是,Informix 从来没有 10.5 版本;版本分别为 9.40、10.00、11.10、11.50、11.70。您使用的是哪个版本,在哪个平台上?) 【参考方案1】:这不是有效的 SQL,就这么简单。 DEFINE
不是您可以在查询中使用的关键字。它是存储过程语言或 SPL 语法的一部分,即:
CREATE FUNCTION foo();
DEFINE p_starttime DATETIME YEAR TO SECOND;
-- do stuff
RETURN p_starttime;
END FUNCTION;
【讨论】:
这也给出了一个错误:错误:发生了语法错误。错误代码:-201 查询 = CREATE FUNCTION foo() 抱歉,这本来就不是一个可运行的存储过程。我在编写 Informix 实例时无权访问它。它可能应该说CREATE FUNCTION foo() RETURNING DATETIME YEAR TO SECOND; ...
。重点是 SQL 中不能使用 DEFINE。以上是关于Informix 错误:发生了语法错误。错误代码:-201的主要内容,如果未能解决你的问题,请参考以下文章
为啥“WITH”子句在 Informix 上会出现语法错误?
IBM Informix-SQL 语法错误,从 Microsoft BIDS 到 Cisco UCCX 数据库的基本查询