我有一個DB2存儲過程,它在數據庫中插入一行。該存儲過程是如下:DB2存儲過程沒有返回結果集
CREATE PROCEDURE ZSPPQINSERTUSERIDBA (
IN P_USERID CHAR(10),
IN P_BUSINESSAREA CHAR(10),
IN P_SELECTEDIND CHAR(1),
IN P_DEFAULTIND CHAR(1),
IN P_LEGACYSYSTEM CHAR(10),
IN P_LEGACYLOGIN CHAR(16),
IN P_LEGACYPASSWORD CHAR(16),
IN P_OTHERLOGIN CHAR(10),
IN P_OTHERPASSWORD CHAR(10),
IN P_ADDSECURLOGIN CHAR(10),
IN P_ADDSECURPASSWORD CHAR(10),
IN P_LASTUPDATEUSERID CHAR(10),
IN P_LASTUPDATE TIMESTAMP)
DYNAMIC RESULT SETS 1
LANGUAGE SQL
SPECIFIC ZSPPQINSERTUSERIDBA
NOT DETERMINISTIC
MODIFIES SQL DATA
CALLED ON NULL INPUT
SET OPTION ALWBLK = *ALLREAD ,
ALWCPYDTA = *OPTIMIZE ,
COMMIT = *CS ,
CLOSQLCSR = *ENDMOD ,
DECRESULT = (31, 31, 00) ,
DFTRDBCOL = *NONE ,
DYNDFTCOL = *NO ,
DYNUSRPRF = *USER ,
RDBCNNMTH = *RUW ,
SRTSEQ = *HEX
P1 : BEGIN
DECLARE TOTALCNT INTEGER DEFAULT 0 ;
DECLARE C1 CURSOR WITH RETURN FOR
SELECT Count (*) FROM USERBUSINESSAREA
WHERE USERID = P_USERID
AND BUSINESSAREA = P_BUSINESSAREA;
OPEN C1;
FETCH C1 INTO TOTALCNT;
CLOSE C1;
IF (TOTALCNT = 0) THEN
INSERT
INTO USERBUSINESSAREA
(
USERID,
BUSINESSAREA,
SELECTEDIND,
DEFAULTIND,
LEGACYSYSTEM,
LEGACYLOGIN,
LEGACYPASSWORD,
OTHERLOGIN,
OTHERPASSWORD,
ADDSECURLOGIN,
ADDSECURPASSWORD,
LASTUPDATEUSERID,
LASTUPDATE
)
VALUES (P_USERID,
P_BUSINESSAREA,
P_SELECTEDIND,
P_DEFAULTIND,
P_LEGACYSYSTEM,
P_LEGACYLOGIN,
P_LEGACYPASSWORD,
P_OTHERLOGIN,
P_OTHERPASSWORD,
P_ADDSECURLOGIN,
P_ADDSECURPASSWORD,
P_LASTUPDATEUSERID,
P_LASTUPDATE);
END IF;
END P1;
當試圖執行從Java /彈簧集成層上面的存儲過程,則不返回結果集。我需要爲上述存儲過程返回結果集做什麼更改?
結果集是一個開放的光標。過程返回時,您沒有任何打開的遊標。如果所有需要返回的值都是單個值,則不需要結果集 - 而是使用「OUT」參數。 – mustaccio
你只是想知道你是否在數據庫中插入了該行?我的意思是,與已經存在的相反。你在Java層需要什麼實際的信息?你試圖做的大圖任務是什麼? –