我正在尝试使用 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
是否缺少配置?
答案 0 :(得分:1)
错误消息表明 Liquidbase 存在 $$
问题。我怀疑:
The endDelimiter SQL attribute
在 SQL 中为 PROCEDURE 和 FUNCTION 使用 endDelimiter
当变更集包含 SQL 时,可以使用 endDelimiter 来创建包含默认“;”的存储过程或函数结束分隔符。为避免将不完整的语句发送到数据库,必须将变更集标记为具有不同的 endDelimiter。
某些 dbms 系统必须指定 endDelimiter 才能运行多个语句。
将其设置为空字符串:endDelimiter=""
应该可以解决它。