【发布时间】:2019-02-25 14:59:24
【问题描述】:
以下 SQL 位在 flyway v5.1.3 对 DB2 LUW 10.5 的情况下失败,但在使用客户端直接在 DB2 中执行时它可以工作。
错误信息:
" DB2 SQL 错误:SQLCODE=-440,SQLSTATE=42884, SQLERRMC=TEST_STATUS;PROCEDURE, DRIVER=4.19.26"
肯定是flyway的问题。有人知道解决方法或修复方法吗?
CREATE OR REPLACE PROCEDURE TEST_STATUS
(
IN a INTEGER,
INOUT b INTEGER,
INOUT c INTEGER,
INOUT d INTEGER
)
BEGIN
END;
CREATE OR REPLACE PROCEDURE TEST_STATUS_MAIN
(
IN a INTEGER,
IN b INTEGER,
IN c INTEGER,
OUT d BIGINT
)
BEGIN
DECLARe e INTEGER DEFAULT 0;
CALL TEST_STATUS(a, b, c, e);
END;
【问题讨论】:
-
可能是函数路径问题,因此请检查在声明和调用中使用模式名称显式限定 TEST_STATUS 是否会有所不同......另外:不要混合 IN 和 INOUT 类型调用和定义之间的序号参数相同。