【发布时间】:2021-07-04 18:03:54
【问题描述】:
我正在从 Flyway 5.4 升级到 7.7.3 并遇到了一些问题。
flyway -teams -url=jdbc:oracle:thin:@localhost:1521/XE "-user=xxx as SYSDBA" -password=xxx -table=flyway_schema_history_app -encoding=utf-8 -baselineOnMigrate=true migrate
(我有团队版许可证)
Flyway 给我以下错误信息:
** 错误:无法解析 /flyway/sql/incremental/Build_302_Baseline/V302_106__fosprd_INSERT_Master_eg_pocqueue.sql 第 117 行第 1 行中的语句。有关更多信息,请参阅https://flywaydb.org/documentation/knownparserlimitations:没有为变量替换提供值:&R。检查您的配置。如果这不是要替换的 SQLPLus 变量(例如,在字符串文字中),那么您需要事先在脚本中添加 SET DEFINE OFF。 原因:没有为变量替换提供值:&R。检查您的配置。如果这不是要替换的 SQLPLus 变量(例如,在字符串文字中),那么您需要事先在脚本中添加 SET DEFINE OFF。 **
这是由 SQL 语句中的特殊字符“&”引起的,但是,我已确保 SQL 文件使用 UTF-8 编码以及 Unix 返回 (LF)。
另外,我的回调如下:
bash-5.0$ pwd
/flyway/sql/callbacks
bash-5.0$ ls
afterBaseline.sql afterEachUndo.sql afterMigrateError.sql afterUndo.sql beforeEachUndo.sql
afterBaselineError.sql afterEachUndoError.sql afterRepair.sql afterUndoError.sql beforeMigrate.sql
afterEachMigrate.sql afterMigrate.sql afterRepairError.sql beforeEachMigrate.sql beforeUndo.sql
这曾经可以毫无问题地在 5.4 上运行。但是它在 7.7.3 上给了我这个错误,任何人都可以指出正确的方向吗?
谢谢
【问题讨论】:
-
只是添加到@madninja 的答案中,字符串文字中是否包含与符号?如果没有,您能否提供(编辑的)SQL sn-p?
标签: flyway