sqlca.sqlerrm.sqlerrmc SQL 代码 -284

Posted

技术标签:

【中文标题】sqlca.sqlerrm.sqlerrmc SQL 代码 -284【英文标题】:sqlca.sqlerrm.sqlerrmc SQL code -284 【发布时间】:2014-08-18 15:21:42 【问题描述】:

我正在使用嵌入式 C: 以下查询返回一个奇怪的 SQLcode -284

  EXEC SQL
   select  *
   into    :xx
   from    xx
   where ....

if (SQLCODE < 0)
   
    err_log( "code %ld sqlerrmc %s",sqlca.sqlerrm.sqlerrml,sqlca.sqlerrm.sqlerrmc);
    db_error("");
    return -1;
  

错误日志是: 代码 4 sqlerrmc SQL error -284 在第 2803 行

你能支持我吗?

【问题讨论】:

EXEC SQL //这是第2803行 【参考方案1】:

来自描述 SQLCA 的PostgreSQL Web site:

-284 (ECPG_INFORMIX_SUBSELECT_NOT_ONE) 子查询的结果不是单行(Informix 兼容模式)。 (SQLSTATE 21000)

我在谷歌搜索“PostgreSQL 嵌入式 sql -284”后的两分钟内发现了这一点。我建议您多努力寻找诸如此类的主要文档,而不是在 SO 上提出问题。

【讨论】:

子句 between 可以是 SUBSELECT 吗?查询是这样的: select * into xx from xx where column1 = :vaulex and column2 between :value1 and :value2; @ThesmartEagle:问题是您的查询返回多行,但您正在写入一个只能存储一行数据的对象。您要么需要收紧查询以使其仅返回一行,要么需要使用游标。

以上是关于sqlca.sqlerrm.sqlerrmc SQL 代码 -284的主要内容,如果未能解决你的问题,请参考以下文章

void create_sq(sqlist &sq,int n)在数据结构中的含义

sqlist中的sq代表啥意思

sq2000中的row_number()

liunx SQ备份脚本

Sq常用操作

sq 语句