我是存储过程的新手,正在尝试创建一个简单的存储过程来从表中读取。我正在使用 IBM DB2 SQL。
--#SET MAXERRORS 0
--#SET TERMINATOR ~
SET CURRENT SQLID = 'SIWRO1'~
CREATE OR REPLACE 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.TEST
WHERE CONN = P_CONN
AND PLNN = P_PLNN;
OPEN C1;
END
~
--#SET TERMINATOR ;
COMMIT;
执行时出现以下错误。
SQLERROR ON CREATE COMMAND, PREPARE FUNCTION
RESULT OF SQL STATEMENT:
DSNT408I SQLCODE = -4743, ERROR: ATTEMPT TO USE A FUNCTION WHEN THE APPLICATION COMPATIBILITY SETTING IS SET FOR A PREVIOUS LEVEL
DSNT418I SQLSTATE = 56038 SQLSTATE RETURN CODE
DSNT415I SQLERRP = DSNHSM5R SQL PROCEDURE DETECTING ERROR
DSNT416I SQLERRD = 50 0 0 -1 1 2721 SQL DIAGNOSTIC INFORMATION
DSNT416I SQLERRD = X'00000032' X'00000000' X'00000000' X'FFFFFFFF'
INFORMATION
我无法弄清楚我做错了什么或如何解决它。我很感谢一些专家的建议。 谢谢
此错误特定于您的 Db2-for-Z/OS 子系统配置。 错误代码的描述是这里
简而言之,这意味着您正在尝试使用目标 Db2 子系统尚未启用的某些功能。
与 Db2-for-Z/OS 的 DBA 联系,了解为目标子系统配置的兼容性级别( APPLCOMPAT 系统参数),以及为该子系统启用了哪些功能。
有了这些信息,请参阅 Db2 for Z/OS 的 Db2 知识中心,了解兼容性级别指定的确切版本。
如果 DBA 是测试子系统,则它还可能启用更高的兼容性级别,这可能允许您的过程编译和运行。