sql >> Databasteknik >  >> RDS >> Oracle

PL/SQL och SQL-skript i en sql-fil med liquibase?

"endDelimiter" fungerar perfekt.

Semikolon i SQL-satsen ger "ogiltigt teckenfel", så du måste ta bort det när det inte är en avgränsare.(Ja, det fungerar i PL/SQL och SQL*Plus, precis som ett snedstreck "/", mer :När behöver jag använda semikolon kontra snedstreck i Oracle SQL? )

Lösningar:

  • endDelimiter ="/"

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

    <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>
    
  • eller kanske;)

    <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. Hur man väljer tills en summa uppnås

  2. Hur man använder $_GET för att få flera parametrar med samma namn i PHP

  3. Identitetsökningen hoppar i SQL Server-databasen

  4. MySQL-fråga som jämför värden med tidigare raders värden