在Liquibase中运行软件包sql文件

时间:2018-06-28 04:26:47

标签: 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>     

1 个答案:

答案 0 :(得分:1)

您的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