首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Liquibase运行PLSQL外部脚本

问使用Liquibase运行PLSQL外部脚本
EN

Stack Overflow用户
提问于 2014-12-04 16:02:59
回答 1查看 4.8K关注 0票数 0

我使用Liquibase在SQLdeveloper中管理我的数据库。现在,我们有了一个自行运行良好的PLSQL脚本。它还会对数据库进行更改。现在,如果我们想让Liquibase运行这个PLSQL脚本,它将得到以下错误: ORA-00922:缺失或无效选项。

Liquibase甚至可以运行外部PLSQL脚本吗?

EN

回答 1

Stack Overflow用户

发布于 2014-12-04 21:20:15

您正遇到两个潜在的问题:

  1. 您使用的是<sqlFile>,但没有指定splitStatements="false"。默认情况下,Liquibase将拆分分号上的SQL,因为这是JDBC驱动程序通常需要的,但是在PL/SQL脚本中,可以有一个创建过程或类似的过程,其中包含分号,但仍然是一条语句。您还可以使用<createProcedure>而不是不拆分语句的sqlFile。
  2. 您的脚本中有特定于sqlplus的功能。SQLPlus和SQLDeveloper不只是简单地将SQL字符串直接传递到数据库,它们有自己的功能,有时可以修改实际执行的内容。JDBC和Liquibase并不具有所有相同的功能,因此如果您在脚本中使用它,它们将无法工作。如果是这样的话,最好的方法是使用changeSet和<executeCommand>调用sqldeveloper或sqlplus。
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27298479

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档