sql >> Database teknologi >  >> RDS >> Oracle

PL/SQL og SQL script i én sqlFile med liquibase?

"endDelimiter" fungerer perfekt.

Semikolon i SQL-sætning producerer "ugyldig tegnfejl", så du skal fjerne det, når det ikke er et skilletegn.(Ja, det gør sit arbejde i PL/SQL og SQL*Plus, ligesom en skråstreg "/", mere :Hvornår skal jeg bruge et semikolon kontra en skråstreg i Oracle SQL? )

Løsninger:

  • endDelimiter ="/"

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

    <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 måske;)

    <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. hvordan duplikere mine sql resultater?

  2. Oracle SQL-udvikler:Fejl - Test mislykkedes:Netværksadapteren kunne ikke etablere forbindelsen?

  3. Annoncering af ClusterControl 1.7.2:Forbedret PostgreSQL backup og support til TimescaleDB &MySQL 8.0

  4. FORMAT() Eksempler i MySQL