Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

PL/SQL dan skrip SQL dalam satu sqlFile dengan liquibase?

"endDelimiter" bekerja dengan sempurna.

Titik koma dalam pernyataan SQL menghasilkan "kesalahan karakter tidak valid", jadi Anda harus menghapusnya ketika itu bukan pembatas. (Ya, ini berfungsi di PL/SQL dan SQL*Plus, seperti garis miring "/", lebih :Kapan saya perlu menggunakan titik koma vs garis miring di Oracle SQL? )

Solusi:

  • endDelimiter ="/"

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

    <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>
    
  • atau mungkin;)

    <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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apa itu Urutan di oracle

  2. desimal(s,p) atau angka(s,p)?

  3. Kegagalan penyisipan Oracle:bukan bulan yang valid

  4. Mengapa koneksi dengan ekspresi dalam loop FOR, dijalankan hanya sekali?

  5. Sepuluh Alasan Teratas untuk Bermigrasi dari Oracle ke PostgreSQL