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
这似乎适用于这些情况:
- 只有 insert/delete(没有 declare 语句块),没有 endDelimiter 语句
- 只有 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;
或在每个语句后加上“/”
正在尝试 运行 来自 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
这似乎适用于这些情况:
- 只有 insert/delete(没有 declare 语句块),没有 endDelimiter 语句
- 只有 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;
或在每个语句后加上“/”