使用 Liquibase 创建雪花存储过程

时间:2021-07-09 17:44:39

标签: snowflake-cloud-data-platform liquibase

我正在尝试使用 liquibase 创建存储过程,但是在执行 liquibase 更新时失败并显示以下错误:

Starting Liquibase at 11:37:58 (version 4.4.0 #11 built at 2021-06-09 16:36+0000)
Liquibase Version: 4.4.0
syntax error line 5 at position 5 unexpected '$'. [Failed SQL: (1003) create or replace procedure SP_TEST_AZURE()
    returns string
    language javascript
    as
    $$
    var sql_cmd

是否缺少配置?

1 个答案:

答案 0 :(得分:1)

错误消息表明 Liquidbase 存在 $$ 问题。我怀疑:

<块引用>

The endDelimiter SQL attribute

在 SQL 中为 PROCEDURE 和 FUNCTION 使用 endDelimiter

当变更集包含 SQL 时,可以使用 endDelimiter 来创建包含默认“;”的存储过程或函数结束分隔符。为避免将不完整的语句发送到数据库,必须将变更集标记为具有不同的 endDelimiter。

某些 dbms 系统必须指定 endDelimiter 才能运行多个语句。

将其设置为空字符串:endDelimiter="" 应该可以解决它。