有没有办法通过JCL或SPUFI调用DB2存储过程

问题描述 投票:0回答:1

我正在尝试执行下面的存储过程

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                                                   
  
                                                                                

有人可以帮忙和建议吗?感谢任何帮助

db2 mainframe jcl db2-zos
1个回答
0
投票

EXEC SQL
END-EXEC
仅在应用程序(COBOL、PL/I、C、ASM...)中嵌入 SQL 时需要。 使用 DSNTEP2,您只需按原样放置 SQL 语句并用
;
终止它。您可能会忽略输入中最后一个语句的分号。

© www.soinside.com 2019 - 2024. All rights reserved.