sql >> Databáze >  >> RDS >> Oracle

PL/SQL a SQL skript v jednom sqlFile s liquibase?

"endDelimiter" funguje perfektně.

Středník v příkazu SQL vytváří "chybu neplatného znaku", takže jej musíte odstranit, když to není oddělovač. (Ano, funguje to v PL/SQL a SQL*Plus, stejně jako lomítko "/", více :Kdy musím v Oracle SQL použít středník vs lomítko? )

Řešení:

  • endDelimiter ="/"

    <changeSet id="1" author="me">
    <sql endDelimiter="/">
        BEGIN
            aud.someProcedure('parameter');
        END;
        /
        insert into test_table(_id, value) VALUES(1, 'test')
    </sql>
    </changeSet>
    
  • dvě sekce

    <changeSet id="1" author="me">
    <sql endDelimiter="/">
        BEGIN
            aud.someProcedure('parameter');
        END;
    </sql>
    <sql>
        insert into test_table(_id, value) VALUES(1, 'test');
    </sql>
    </changeSet>
    
  • nebo možná;)

    <changeSet id="1" author="me">
    <sql endDelimiter="#Gabor was here#">
        BEGIN
            aud.someProcedure('parameter');
        END;
        #Gabor was here#
        insert into test_table(_id, value) VALUES(1, 'test')
    </sql>
    </changeSet>
    


  1. Jak můžeme v MySQL zjistit, zda je index tabulky seskupený nebo ne?

  2. Použití GROUP BY s XMLCast a XMLQuery poskytuje ORA-22950

  3. Deset způsobů, jak rozšířit funkčnost PostgreSQL

  4. Proč se UPDATE používá poté, co SELECT změní 2 řádky místo jednoho?