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 上会出现语法错误?

在 informix 中捕获错误

Informix 数据库问题

Informix 存储过程通用异常处理

Informix SQL — CASE 语句中的错误

IBM Informix-SQL 语法错误,从 Microsoft BIDS 到 Cisco UCCX 数据库的基本查询