Liquibase endDelimiter 用法
Posted
技术标签:
【中文标题】Liquibase endDelimiter 用法【英文标题】:Liquibase endDelimiter usage 【发布时间】:2015-06-09 21:20:44 【问题描述】:尝试从 Liquibase 运行它:
--changeset blah runOnChange:true endDelimiter:\n/\s*\n|\n/\s*$
DELETE MYTABLE;
INSERT INTO MYTABLE(A,B,C) VALUES ('A', 'B', 'C');
DECLARE
row_count NUMBER;
BEGIN
SELECT COUNT(1) INTO row_count FROM OTHERTABLE;
IF (row_count = 0)
THEN DELETE MYTABLE WHERE A LIKE 'BLAH:%';
END IF;
END;
/
但是得到这个错误:
原因:java.sql.SQLSyntaxErrorException:ORA-00911:无效 人物
似乎这在这些情况下有效:
-
只有插入/删除(没有声明语句块),没有 endDelimiter 语句
仅使用 declare 语句块(无插入/删除)和 endDelimiter 语句
但它并不能一起工作。 ??
【问题讨论】:
【参考方案1】:试试
DECLARE
row_count NUMBER;
BEGIN
DELETE MYTABLE;
INSERT INTO MYTABLE(A,B,C) VALUES ('A', 'B', 'C');
SELECT COUNT(1) INTO row_count FROM OTHERTABLE;
IF (row_count = 0)
THEN DELETE MYTABLE WHERE A LIKE 'BLAH:%';
END IF;
END;
或在每条语句后加一个“/”
【讨论】:
谢谢我也在努力解决这个问题.. 工作正常。试图将这两个“块”与风格偏好分开,但效果很好。以上是关于Liquibase endDelimiter 用法的主要内容,如果未能解决你的问题,请参考以下文章