"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>