Получение SQLCODE и SQLSTATE из запроса выбора внутри процедуры DB2 - PullRequest
0 голосов
/ 16 ноября 2018

У меня есть процедура, и все, что мне нужно, это SQLSTATE и SQLCODE из запроса на выборку.Я НЕ заинтересован в самом результате.

 Create procedure select_test(IN query varchar(1024))
 Language sql
 BEGIN
DECLARE SQLCODE INTEGER DEFAULT 0;
DECLARE SQLSTATE CHAR(5) DEFAULT '00000';
DECLARE V_QUERY VARCHAR(24576);
DECLARE V_ERRORMSG VARCHAR(2048) DEFAULT '';
DECLARE V_SQLCODE INTEGER DEFAULT 0;
DECLARE V_SQLSTATE CHAR(5) DEFAULT '00000';
DECLARE STMT STATEMENT;
DECLARE C1 CURSOR FOR STMT;
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION, SQLWARNING,NOT FOUND
BEGIN
GET DIAGNOSTICS
EXCEPTION
1 V_ERRORMSG = MESSAGE_TEXT;
VALUES(SQLSTATE,SQLCODE)INTO V_SQLSTATE, V_SQLCODE;
END;

SET V_QUERY = QUERY;
PREPARE STMT FROM V_QUERY;

OPEN C1; CLOSE C1;

 End@

Все, что мне нужно, это SQLCODE, SQLSTATE и MESSAGE_TEXT.Результат выбора не важен.Запрос - это что-то вроде

 SELECT A,B,C from TAB_A;

с неверной таблицей в запросе.

Благодаря @Mark Barinstein мне подсказали курсорную часть, так что спасибо вам за это уже.

Проблема в том, что я получаю SQLCODE -504, и он должен быть -204.Так что это не SQLCODE для выбора.

Я использую DB2 Windows v10.5

Есть идеи?

Спасибо

...