当前位置: 首页 > 知识库问答 >
问题:

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

施默
2023-03-14

下面的SQL语句在flyway v5.1.3和DB2 LUW 10.5中会失败,但是在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个答案

邢骏
2023-03-14

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

 类似资料:
  • 我对DB2中的过程有疑问。我使用“create procedure”创建了一个存储过程,在这个存储过程中,我还有一个使用“declare procedure”声明的存储过程。但是,这个由declare创建的过程不能使用“call”调用。 当我尝试运行该过程时,Db2返回: [代码:-440,SQL状态:42884]DB2 SQL错误:sqlcode=-440,sqlstate=42884,sqle

  • 问题内容: 我有一个需要很多参数的插入存储过程-其中2个是@ FirstName,@ LastName。我还有一个更新存储过程,该过程需要许多参数-其中2个是@ FirstName,@ LastName。 我想做的是,从插入SP内部完成之后,调用更新SP并将其发送给@ FirstName,@ LastName。 我不知道这样做的正确语法;我试过了: 但我认为这是错误的。 有人可以告诉我怎么写这个电

  • 问题内容: 我有一个过滤器linkifyStuff,其中需要使用其他过滤器处理一些变量。我无法弄清楚从另一个调用一个过滤器的语法。 我了解过滤器链接-这不是我想要的。我想将过滤器应用于linkifyStuff过滤器中的局部变量,而不是其输入或输出。 我希望像下面这样工作,但是$ filter(’filtername’)显然不是正确的语法。 我可以为sanitizeStuff和sanitizeStu

  • 问题内容: 我在Java中的线程上有些挣扎,我有三个线程- 线程1,线程2和线程3。那些启动时正在执行某些任务,我想通过thread1停止这两个线程。我将thread1放在,然后停止两个线程,但是两个线程的进程仍在运行。你有什么想法吗? 问题答案: 您如何试图阻止他们??警告此方法已弃用。 而是考虑对线程1使用某种标志来与线程2和3通信,它们应该停止。实际上,您可能会使用interrupts。 下

  • 我有一个名为的表和另一个的表。是表的副本。 现在,表可以随时删除并重新创建,添加新列并将旧列重命名为不同的列。我编写了一个存储过程,它将数据从表复制到表,这取决于是否需要插入或更新 现在我有点迷路了:如何解决这个问题,即一旦删除并重新创建了sales表,如何修改对saleshistory表的更改? 任何想法或相同的代码,如果需要,我可以在存储过程中共享我的代码,但这很简单 这是代码

  • 这是我想在第一个窗口中导入的第二个窗口,但它将闪烁并消失。 从PyQt5导入QtCore、QtGui、QtWidgets 类Ui_主窗口_6(对象): if name=="main":导入sys 这是我的第一个窗口: 类Ui_主窗口(对象): if name=="main":导入sys 这是我正在使用的函数: