检查选择查询中的零行

时间:2011-11-07 16:37:53

标签: sql c oracle11g

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

基本上我想设置一个本地valiable来知道我的查询没有返回任何行和 相应地处理这个条件。

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

感谢您的帮助。

2 个答案:

答案 0 :(得分: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");

答案 1 :(得分:0)

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