运行 在 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
我使用脚本 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