Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Stored procedures db2存储过程不兼容参数错误_Stored Procedures_Db2 - Fatal编程技术网

Stored procedures db2存储过程不兼容参数错误

Stored procedures db2存储过程不兼容参数错误,stored-procedures,db2,Stored Procedures,Db2,我不熟悉存储过程。基本上,我试图创建一个存储过程,并试图从db2命令行接口调用它,以便将记录插入表中 已在我的数据库中成功创建存储过程。但是,当我传递参数来调用存储过程时,它抛出了下面的错误 SQL0440N未找到具有兼容参数的“PROCEDURE”类型的名为“COM_PROC_INSERT_FAILURE_XMESSAGE_MAIN”的授权例程。SQLSTATE=42884 我已经创建了XMESSAGE表,存储过程是基于XMESSAGE表中相同的数据类型创建的 我创建的存储过程如下所示: CR

我不熟悉存储过程。基本上,我试图创建一个存储过程,并试图从db2命令行接口调用它,以便将记录插入表中

已在我的数据库中成功创建存储过程。但是,当我传递参数来调用存储过程时,它抛出了下面的错误

SQL0440N未找到具有兼容参数的“PROCEDURE”类型的名为“COM_PROC_INSERT_FAILURE_XMESSAGE_MAIN”的授权例程。SQLSTATE=42884

我已经创建了XMESSAGE表,存储过程是基于XMESSAGE表中相同的数据类型创建的

我创建的存储过程如下所示:

CREATE PROCEDURE com_proc_insert_failure_XMESSAGE_main(
    OUT errmsg CHAR(5),
    IN XMESSAGE_ID BIGINT,
    IN XMESSAGETYPE_ID CHAR(32),
    IN ISPROCESSED INTEGER,
    IN FOREIGN_ID BIGINT,
    IN FIELD1 VARCHAR(254),
    IN FIELD2 VARCHAR(254),
    IN FIELD3 VARCHAR(4000),
    IN ORDER_ID VARCHAR(30)
)
LANGUAGE SQL
BEGIN

DECLARE SQLSTATE CHAR(5);

INSERT INTO XMESSAGE (XMESSAGE_ID, XMESSAGETYPE_ID, ISPROCESSED, FOREIGN_ID, FIELD1, FIELD2, FIELD3, ORDER_ID ) 
VALUES (XMESSAGE_ID, XMESSAGETYPE_ID, ISPROCESSED, FOREIGN_ID, FIELD1, FIELD2, FIELD3, ORDER_ID );

SET errmsg = SQLSTATE;

END@
我从db2命令行界面调用存储过程,如下所示

db2 "call com_proc_insert_failure_XMESSAGE_main(?, 123456789,'TEST_MESSAGE',1,1,'TESTMESSAGE','111','test','12345')"

我相信我传递的参数是正确的。有人能告诉我问题发生在哪里吗?提前谢谢

检查“创建过程”时使用的架构是否与调用时的默认架构匹配。procschema列中的syscat.procedures条目应该是调用时的隐式身份验证id,否则在调用时用该procschema限定存储过程名称。

您是正确的!!数据库是以管理员身份登录的,而不是正确的用户。当我使用procschema中的值正确登录时,它开始正常工作。谢谢你的帮助!!!!!