使用 Liquibase 创建雪花存储过程
Posted
技术标签:
【中文标题】使用 Liquibase 创建雪花存储过程【英文标题】:Using Liquibase to create snowflake storedprocedure 【发布时间】:2021-07-09 17:44:39 【问题描述】:我正在尝试使用 liquibase 创建存储过程,但是在进行 liquibase 更新时失败并出现以下错误:
在 11:37:58 启动 Liquibase(版本 4.4.0 #11 构建于 2021-06-09 16:36+0000) Liquibase 版本:4.4.0 位置 5 处的语法错误第 5 行意外的“$”。 [失败的 SQL: (1003) 创建或替换过程 SP_TEST_AZURE() 返回字符串 语言 javascript 作为 $$ 变量 sql_cmd
是否缺少配置?
【问题讨论】:
【参考方案1】:错误消息表明 Liquidbase 与 $$
存在问题。我怀疑:
The endDelimiter SQL attribute
在 SQL 中为 PROCEDURE 和 FUNCTION 使用 endDelimiter
当变更集包含 SQL 以创建包含默认“;”的存储过程或函数时,可以使用 endDelimiter结束分隔符。为避免将不完整的语句发送到数据库,必须将变更集标记为具有不同的 endDelimiter。
必须为某些 dbms 系统指定 endDelimiter 才能运行多个语句。
将其设置为空字符串:endDelimiter=""
应该可以解决它。
【讨论】:
是的,它的结束分隔符默认为';',让我检查一下那个选项.. 谢谢 完美,你是对的,感谢我让 endDelimiter="" 成功执行以上是关于使用 Liquibase 创建雪花存储过程的主要内容,如果未能解决你的问题,请参考以下文章