私はストアドプロシージャが初めてです。基本的には、私はストアドプロシージャを作成しようとしていますが、テーブルにレコードを挿入するためにdb2コマンドラインインターフェイスから呼び出そうとしています。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;
[email protected]
私は私が正しくパラメータを渡しています信じて
db2 "call com_proc_insert_failure_XMESSAGE_main(?, 123456789,'TEST_MESSAGE',1,1,'TESTMESSAGE','111','test','12345')"
以下のように私には、DB2コマンド・ライン・インターフェースから、ストアドプロシージャを呼び出しています。誰かが私に問題が起こっていることを教えてもらえますか?前もって感謝します!
あなたは正しいです!データベースは正しいユーザーの代わりに管理者としてログインしていました。私がprocschemaからの値で正しくログインしたとき、正常に動作し始めました。 ご協力ありがとうございます!!!!! – Krish