PL/SQL和SQL脚本在一个sqlFile中,并带有用于Oracle的liquibase

PL/SQL和SQL脚本在一个sqlFile中,并带有用于Oracle的liquibase,oracle,liquibase,liquibase-sql,Oracle,Liquibase,Liquibase Sql,我们正在尝试使用liquibase 3.8.0在同一liquibase变更集中运行存储过程和SQL语句,并得出以下错误 运行Liquibase:ORA-06550:第12行第2列时出现意外错误:PLS-00103:遇到符号“/” 你看到这个问题了吗?尝试使用endDelimiter=“/”并删除最后的分号是,我试过了,得到了下面的错误ORA-06550:第11行第2列:PLS-00103:在预期以下情况时遇到“/”符号:;为什么要将这两件事放在一个变更集中?这些语句是DDL语句。最好将每个DDL

我们正在尝试使用liquibase 3.8.0在同一liquibase变更集中运行存储过程和SQL语句,并得出以下错误

运行Liquibase:ORA-06550:第12行第2列时出现意外错误:PLS-00103:遇到符号“/”


你看到这个问题了吗?尝试使用
endDelimiter=“/”
并删除最后的分号
是,我试过了,得到了下面的错误ORA-06550:第11行第2列:PLS-00103:在预期以下情况时遇到“/”符号:;为什么要将这两件事放在一个变更集中?这些语句是DDL语句。最好将每个DDL语句放在一个单独的变更集中。将其拆分为两个变更集将使这一过程更加容易,即使您不希望这样,最好至少将其拆分为两个SQL文件,这样您就不需要属性来使其中一个语句工作,而这可能会导致另一个语句失败。
<changeSet author="cng-wow-initial" id="ad_group_role_mapping.sql2">
    <sqlFile dbms="oracle"
            encoding="utf8"
            path="../wrk/tables/ad_group__role_mapping.sql"
            splitStatements="false"
            stripComments="false" endDelimiter="\/"/>
</changeSet>
    DECLARE
            e_error EXCEPTION;
            PRAGMA exception_init ( e_error,-00942 );
        BEGIN
            EXECUTE IMMEDIATE 'drop table XXXX.AD_GROUP_ROLE_MAPPING';
        EXCEPTION
            WHEN e_error THEN
            NULL;
        END;

        /
        CREATE TABLE XXXX.AD_GROUP_ROLE_MAPPING(
            AD_GROUP_NAME VARCHAR2(200) NOT NULL,
            ROLE_ID NUMBER,
            PRIMARY KEY (AD_GROUP_NAME));