LINUX.ORG.RU

liquibase regexp in postgresql create function

 , ,


0

1

Доброго дня!

Имею скрипт в function.sql:

CREATE OR REPLACE FUNCTION public.my_function(IN dirty TEXT, OUT clear TEXT) AS $$
    SELECT regexp_replace(trim(dirty), '(some text)$', '', 'i');
$$ LANGUAGE SQL;

В своем java-приложении использую LiquiBase с таким changeSet'ом:

<changeSet id="1" author="author">
    <comment>Create function</comment>
    <sqlFile path="function.sql"/>
</changeSet>

При запуске приложения бросается исключение:

Caused by: org.postgresql.util.PSQLException: ERROR: unterminated dollar-quoted string at or near $$

Однако, если я выполню скрипт в консоли, то функция будет создана без проблем. Подскажите, как обойти данную проблему?

Что-то знакомое. А в каком-нибудь java-клиенте вроде SQuirreL SQL это же самое нормально отрабатывает?

asaw ★★★★★
()
Ответ на: комментарий от asaw

в том же pgAdmin отрабатывает успешно.у меня подозрение, что это не проблема jdbc-драйвера, а LiquiBase как то криво отдает...иначе ни через pgAdmin, ни через ту же консоль в IDE не прокатило

wertklop
() автор топика
Ответ на: комментарий от wertklop

pgAdmin работает не через JDBC, в отличие от ликвибейз, поэтому я и спросил про squirrel sql. Если DDL записать в одну строку, то сработает?

asaw ★★★★★
()

splitStatements="false" попробуй добавить

maxcom ★★★★★
()
Последнее исправление: maxcom (всего исправлений: 1)
Ответ на: комментарий от asaw

DDL записал одной строкой, changeSet сработал успешно. Спасибо!

wertklop
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.