DB2中一个过程调用另一个过程时,Flyway失败

时间:2019-02-25 14:59:25

标签: db2 flyway

下面的SQL语句在针对DB2 LUW 10.5的flyway v5.1.3中失败,但是当使用客户端在DB2中直接执行时,它可以工作。

错误消息:

  

“ DB2 SQL错误:SQLCODE = -440,SQLSTATE = 42884,   SQLERRMC = TEST_STATUS;过程,驱动程序= 4.19.26“

绝对是飞行路线的问题。有谁知道解决方法或解决方案?

    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;

1 个答案:

答案 0 :(得分:0)

如果CURRENT SCHEMA不在会话的CURRENT PATH列表中,则可能会发生这种情况。
比方说,
VALUES CURRENT SCHEMA返回SCHEMA1
VALUES CURRENT PATH返回"SYSIBM","SYSFUN","SYSPROC","SYSIBMADM","SCHEMA2"
例程TEST_STATUS是在SCHEMA1模式中创建的,尝试创建"SYSIBM","SYSFUN","SYSPROC","SYSIBMADM","SCHEMA2"时,试图在TEST_STATUS_MAIN列表中找到它。