我有一个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层需要什么实际的信息?你试图做的大图任务是什么? –