【问题标题】:Clean fails on OracleOracle 上的清理失败
【发布时间】:2015-04-05 00:56:39
【问题描述】:

当我对 Oracle 数据库运行 clean 命令时,我得到了这个错误。

Caused by: java.sql.SQLException: ORA-06550: line 1, column 7:
PLS-00306: wrong number or types of arguments in call to 'DROP_JOB'
ORA-06550: line 1, column 7: PL/SQL: Statement ignored

我正在使用 Oracle 10.2.0.4.0 和 Flyway 3.1

编辑

我使用的是旧数据库。

首先我运行

flyway baseline -Dflyway.baselineVersion=1 -Dflyway.baselineDescription="Base version"

然后我添加了这个脚本

CREATE TABLE "SMTAPP"."EC_KODY_VYKONU"
(
    "ID" NUMBER(9, 0) NOT NULL, 
    "NAZOV" NVARCHAR2(50) NOT NULL 
);

CREATE TABLE "SMTAPP"."EC_MATERIALY"
(
    "ID" NUMBER(9, 0) NOT NULL, 
    "NAZOV" NVARCHAR2(50) NOT NULL, 
    "IS_ROZTOK" NUMBER(1, 0) NOT NULL 
);

CREATE SEQUENCE "SMTAPP"."EC_KODY_VYKONU_SEQ" INCREMENT BY 1 START WITH 1 NOMAXVALUE NOCYCLE;

ALTER TABLE "SMTAPP"."EC_KODY_VYKONU"
    ADD CONSTRAINT "PK_52eece2411997559a4bb900877d" PRIMARY KEY
    ( 
        "ID" 
    );

ALTER TABLE "SMTAPP"."EC_MATERIALY"
    ADD CONSTRAINT "PK_86fb16745239d69a3bd73a82d1a" PRIMARY KEY
    ( 
        "ID" 
    );

然后我运行

flyway migrate

现在当我运行 clean 命令时,会弹出错误。

【问题讨论】:

    标签: oracle flyway


    【解决方案1】:

    很可能在您调用 DROP_JOB 的脚本之一中,您的参数少于或多于错误显示所需的参数。

    喜欢:

    DROP_JOB(VARCHAR2 p_param)
    ... procedure body
    

    被称为

    DROP_JOB(param1, param2);
    

    DROP_JOB();
    

    要做的事情:
    - 更正脚本
    - 进行飞路维修
    - 运行迁移

    【讨论】:

    • 但是没有任何带有 DROP_JOB 调用的脚本。 clean 命令是只删除使用迁移命令创建的对象还是删除当前模式中的所有对象?
    • @user49126 你能更新你的问题添加脚本吗?我只能从我所看到的猜测,也许 DROP_JOB 的调用发生在某个包中,所以它可能发生你需要检查你的包过程。
    • @user49126 我明白了,你的问题不是那么小,我发现this question 可能是相关的。
    【解决方案2】:

    这听起来像是一个错误。请在 Flyway Issue Tracker 中提出问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-21
      • 2021-06-17
      • 2011-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多