【问题标题】:check for zero rows in select query检查选择查询中的零行
【发布时间】:2011-11-07 16:37:53
【问题描述】:

我的 C 程序有一个嵌入式 sql 查询。这个程序在windows上运行,查询oracle数据库。 该查询类似于 EXEC SQL SELECT ... 我需要在这里添加一个检查以了解查询是否返回零行。

基本上我想设置一个本地变量来知道我的查询没有返回任何行并且 相应地处理这种情况。

如何添加它。我知道可以使用 EXISTS 语句。但我没有得到 如何在嵌入式 sql 中使用它。

感谢您的帮助。

【问题讨论】:

  • 显示您用于捕获查询结果的 C 代码。

标签: sql c oracle11g


【解决方案1】:

使用 sqlca 结构

EXEC SQL include "sqlca.h"
#define NO_ROWS_FOUND (sqlca.sqlcode==1403)
EXEC SQL BEGIN DECLARE SECTION;
    int val=0;
    short ind=0;
EXEC SQL END DECLARE SECTION;

EXEC SQL 
    select value
    int :val :ind 
      from mytable where rownum=1;
if(NO_ROWS_FOUND)
   printf("No rows found\n");

【讨论】:

    【解决方案2】:

    使用 SELECT COUNT(*) FROM ... 并将结果与​​ 0 进行比较。

    【讨论】:

      猜你喜欢
      • 2016-05-02
      • 1970-01-01
      • 1970-01-01
      • 2015-09-12
      • 2015-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多