我使用脚本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>
答案 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