运行 在 Liquibase 中打包 sql 文件

Run package sql file in Liquibase

我使用脚本 sql 文件在 Liquibase 中创建包。但是在更新 liquibase 之后只创建了包,而不是包体。

请看我下面的代码

create or replace package BUILD2TEST.MyPackage is    
  /* my code */
END MyPackage;    
create or replace package body BUILD2TEST.MyPackage is    
    /* my code */
end MyPackage;

你知道liquibase为什么不能创建包体吗?

我的变更集

 <changeSet author="taibc" id="sqlFile-example2">
<sqlFile dbms="h2, oracle"
        encoding="utf8"
        endDelimiter="\nGO"
        path="CreatePackage.sql"
        relativeToChangelogFile="true"
        splitStatements="true"
        stripComments="true"/>
  <rollback>
    DROP PACKAGE BUILD2TEST.MyPackage;         
</rollback>     

您的 sql 文件中的分隔符有误。

试试这个:

create or replace package BUILD2TEST.MyPackage is    
  /* my code */
END MyPackage; 
/
create or replace package body BUILD2TEST.MyPackage is    
    /* my code */
end MyPackage;
/

并将分隔符更改为:

<changeSet author="taibc" id="sqlFile-example2">
<sqlFile dbms="h2, oracle"
        encoding="utf8"
        endDelimiter="\n/"
        path="CreatePackage.sql"
        relativeToChangelogFile="true"
        splitStatements="true"
        stripComments="true"/>
  <rollback>
    DROP PACKAGE BUILD2TEST.MyPackage;         
</rollback>   

至少这应该适用于 oracle