Liquibase endDelimiter 用法

Liquibase endDelimiter usage

正在尝试 运行 来自 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;
/

但是出现这个错误:

Caused by: java.sql.SQLSyntaxErrorException: ORA-00911: invalid character

这似乎适用于这些情况:

  1. 只有 insert/delete(没有 declare 语句块),没有 endDelimiter 语句
  2. 只有 declare 语句块(没有 insert/delete)和 endDelimiter 语句

但它并不能一起工作。 ??

尝试

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;

或在每个语句后加上“/”