#sql #c #oracle11g
#sql #c #oracle11g
Вопрос:
В моей программе C есть встроенный sql-запрос. Эта программа работает в Windows и запрашивает базу данных Oracle. Запрос аналогичен EXEC SQL SELECT … Мне нужно добавить сюда проверку, чтобы узнать, возвращает ли запрос нулевые строки.
В принципе, я хочу установить локальную проверку, чтобы знать, что мой запрос не вернул ни одной строки, и соответствующим образом обработать это условие.
Как я могу это добавить. Я знаю, что можно использовать оператор EXISTS. Но я не понимаю, как мне использовать это во встроенном sql.
Спасибо за любую помощь.
Комментарии:
1. Покажите код C, который вы используете для записи результатов запроса.
Ответ №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 foundn");
Ответ №2:
Используйте SELECT COUNT(*) FROM ...
и сравните результат с 0.