【问题标题】:Call Oracle procedure from Flyway从 Flyway 调用 Oracle 程序
【发布时间】:2012-11-29 04:54:09
【问题描述】:

我在 Java 应用程序中使用 Maven 3、FlyWay 和 Oracle。我正在尝试从我的 sql 脚本调用 Oracle 过程。

文件名为V1.0.0__test.sql,内容为:

execute pkg_test.pr_do_task('TEST_VALUE');

格式是否正确?我只在运行时遇到一般错误

mvn -P DEV clean compile flyway:migrate

这是:

[错误] 无法在项目 bambi-ex 上执行目标 com.googlecode.flyway:flyway-maven-plugin:2.0.3:migrate (default-cli) man-sql:Flyway 错误:com.googlecode.flyway.core.api.FlywayException:迁移到版本 4.0.0 失败!请恢复 备份和回滚数据库和代码! -> [帮助 1] org.apache.maven.lifecycle.LifecycleExecutionException: 未能执行目标 com.googlecode.flyway:flyway-maven-plugin :2.0.3:migrate (default-cli) on project bambi-exman-sql: Flyway Error: com.googlecode.flyway.core.api.FlywayException: M 迁移到 4.0.0 版本失败!请恢复备份并回滚数据库和代码! 在 org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:217) 在 org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) 在 org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) 在 org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84) 在 org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59) 在 org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183) 在 org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161) 在 org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320) 在 org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156) 在 org.apache.maven.cli.MavenCli.execute(MavenCli.java:537) 在 org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196) 在 org.apache.maven.cli.MavenCli.main(MavenCli.java:141) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在 java.lang.reflect.Method.invoke(Method.java:597) 在 org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290) 在 org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230) 在 org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409) 在 org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352) 引起:org.apache.maven.plugin.MojoExecutionException:Flyway 错误:com.googlecode.flyway.core.api.FlywayException: 迁移到版本 4.0.0 失败!请恢复备份并回滚数据库和代码! 在 com.googlecode.flyway.maven.AbstractFlywayMojo.execute(AbstractFlywayMojo.java:200) 在 org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101) 在 org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209) ... 19 更多 原因:com.googlecode.flyway.core.api.FlywayException:迁移到4.0.0版本失败!请恢复备份和 回滚数据库和代码! 在 com.googlecode.flyway.core.migration.DbMigrator.migrate(DbMigrator.java:186) 在 com.googlecode.flyway.core.Flyway$1.execute(Flyway.java:856) 在 com.googlecode.flyway.core.Flyway$1.execute(Flyway.java:820) 在 com.googlecode.flyway.core.Flyway.execute(Flyway.java:1259) 在 com.googlecode.flyway.core.Flyway.migrate(Flyway.java:820) 在 com.googlecode.flyway.maven.MigrateMojo.doExecuteWithMigrationConfig(MigrateMojo.java:159) 在 com.googlecode.flyway.maven.AbstractMigrationLoadingMojo.doExecute(AbstractMigrationLoadingMojo.java:162) 在 com.googlecode.flyway.maven.AbstractFlywayMojo.execute(AbstractFlywayMojo.java:191) ... 21 更多

我似乎无法获得完整的堆栈跟踪。

谢谢

【问题讨论】:

    标签: oracle flyway


    【解决方案1】:
    Try this,
    
    begin
     pkg_test.pr_do_task('TEST_VALUE');
    end;
    /
    

    【讨论】:

    • "/" 在 flyway 中不起作用,它是 SQLPLUS 客户端独有的功能,它会出错
    【解决方案2】:

    这种情况下的错误报告绝对可以而且应该改进。请在问题跟踪器中提交增强请求。

    【讨论】:

      猜你喜欢
      • 2015-10-28
      • 2020-03-16
      • 2020-09-09
      • 2012-08-06
      • 2014-06-02
      • 1970-01-01
      • 2017-12-11
      • 2011-06-08
      • 2020-11-15
      相关资源
      最近更新 更多