我有一个现有项目,目前使用flyway-ant 2.2.1版进行迁移。
由于多种原因,我需要使用3.2.1(针对不同行结尾的修复表)。 不幸的是,一旦我尝试使用flyway 3.2.1设置一个空的测试数据库,我从Oracle DB中得到以下错误:
Migration V1_15_1_3__AddCommandParamSDCardLogs.sql failed
---------------------------------------------------------
SQL State : 42000
Error Code : 911
Message : ORA-00911: invalid character
Location : /Volumes/dev/cs/IdeaProjects/grd/db/src/sql/1.15/V1_15_1_3__AddCommandParam.sql
Line : 1
Statement : INSERT INTO T_RD_COMMAND (ID, COMMAND_ID, NAME, DISPLAY_ORDER, DISPLAY_NAME, CREATION_TIME, LAST_UPDATE_TIME) VALUES (SEQ_RD_COMMAND_PARAM.NEXTVAL, (SELECT ID FROM T_RD_COMMANDS WHERE COMMAND_NAME = 'GET_LOGS'), 'fromDate', 1, 'From Date', SYSDATE, SYSDATE);
INSERT INTO T_RD_COMMAND (ID, COMMAND_ID, NAME, DISPLAY_ORDER, DISPLAY_NAME, CREATION_TIME, LAST_UPDATE_TIME) VALUES (SEQ_RD_COMMAND_PARAM.NEXTVAL, (SELECT ID FROM T_RD_COMMANDS WHERE COMMAND_NAME = 'GET_LOGS'), 'toDate', 1, 'To Date', SYSDATE, SYSDATE);
知道为什么会这样吗?它可能是飞路上的一个错误吗?使用flyway 2.2.1运行迁移一切都很顺利,与flyway 3.2.1运行完全相同的迁移,oracle报告此错误。
顺便说一下。它是flyway-ant。
Parsed INSERT语句:
INSERT
INTO T_RD_COMMAND
(
ID,
COMMAND_ID,
NAME,
DISPLAY_ORDER,
DISPLAY_NAME,
CREATION_TIME,
LAST_UPDATE_TIME
)
VALUES
(
SEQ_RD_COMMAND_PARAM.NEXTVAL,
(SELECT ID FROM T_RD_COMMANDS WHERE COMMAND_NAME = 'GET_LOGS'
),
'toDate',
1,
'To Date',
SYSDATE,
SYSDATE
);
答案 0 :(得分:1)
这看起来像是一个解析问题。请提出错误报告,包括问题跟踪器中的声明。
答案 1 :(得分:0)
这似乎是此错误的症状: https://github.com/flyway/flyway/issues/1010