嗨,我正在努力解决这个话题。我有以下变更集:

 <changeSet author="artur" id="storedProcedures-0003">

        <sqlFile dbms="postgresql"
                 encoding="utf8"
                 path="server/sql/storedProcedures/postgresql/procedure.sql"
                 relativeToChangelogFile="true"
                 splitStatements="false"
        />
    </changeSet>

我的程序是:
CREATE FUNCTION testProc(oRefCursor          OUT  REFCURSOR)

AS $BODY$
DECLARE
    minLevel        INTEGER;
    defDcId         DECIMAL(19);
BEGIN

END;
$BODY$ LANGUAGE plpgsql;

这个过程在pgAdmin工具上运行得很好,但是在liquibase中我总是得到错误。我试着去寻找答案,但对我来说也不管用。我在seprate文件中有这个过程,我使用splitStatements="false"但是没有任何帮助。我总是犯这个错误。有人知道这个问题的解决方法吗(这是禁酒问题吗?)。我试着用一行字来写,我试着用斜杠,但没有成功。

最佳答案

我找到了造成这种行为的原因。在我的项目中,有一些硬编码的postgresql驱动程序的旧版本。我换了最新的(42.1.3),现在一切都好了。我的意思是很好,但我仍然需要在我的问题中描述的单独的文件中对过程sql使用变通方法

关于postgresql - Liquibase:$ BODY $或附近的无终止美元报价字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45206993/

10-09 21:01