我有一个过程,我想要的只是选择查询中的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。因此它不是select的SQLCODE。
我正在运行DB2 Windows v10.5
有什么主意吗?
谢谢