我正在尝试执行下面的存储过程
CREATE PROCEDURE DWR000A.SELECT_PSID_RIZ(
IN P_CONN INT
,IN P_PLNN INT
)
LANGUAGE SQL
RESULT SETS 1
READS SQL DATA
BEGIN
DECLARE C1 CURSOR FOR
SELECT PSID,
JOBINFO
FROM DWR000A.PSLOGT
WHERE CONN = P_CONN
AND PLNN = P_PLNN;
OPEN C1;
END
我是一名初学者,正在尝试学习 IBM DB2 存储过程。我正在尝试执行简单的存储过程,而无需编写主机 Cobol 程序。有没有办法通过 DB2 SPUFI 或 JCL 来实现这一点。有没有更简单的方法来执行存储过程。我尝试使用 JCL RUNNING PROC DSNTEP2 但出现以下错误。我不确定我做错了什么,因为在创建我的程序期间没有问题。
000002 PAGE 1
000003 ***INPUT STATEMENT:
000004 EXEC SQL
000005 CALL SELECT_PSID_RIZ(761,01)
000006 END-EXEC
000007 ;
000008 SQLERROR ON EXEC COMMAND, PREPARE FUNCTION
000009 RESULT OF SQL STATEMENT:
000010 DSNT408I SQLCODE = -84, ERROR: UNACCEPTABLE SQL STATEMENT
000011 DSNT418I SQLSTATE = 42612 SQLSTATE RETURN CODE
000012 DSNT415I SQLERRP = DSNHAPL2 SQL PROCEDURE DETECTING ERROR
000013 DSNT416I SQLERRD = 1 0 0 -1 10 101 SQL DIAGNOSTIC INFORMATION
000014 DSNT416I SQLERRD = X'00000001' X'00000000' X'00000000' X'FFFFFFFF
000015 INFORMATION
有人可以帮忙和建议吗?感谢任何帮助
EXEC SQL
和END-EXEC
仅在应用程序(COBOL、PL/I、C、ASM...)中嵌入 SQL 时需要。
使用 DSNTEP2,您只需按原样放置 SQL 语句并用 ;
终止它。您可能会忽略输入中最后一个语句的分号。