首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >没有为占位符表达式提供任何值

没有为占位符表达式提供任何值
EN

Stack Overflow用户
提问于 2019-03-05 08:25:49
回答 5查看 6.6K关注 0票数 3

尽管设置了flyway.placeholderReplacement=false,但我仍然看到在Flyway的sql中没有为占位符表达式提供任何值的错误。

错误:意外错误org.flywaydb.core.api.FlywayException:没有为占位符表达式&条件提供任何值。检查你的配置!在org.flywaydb.core.internal.database.oracle.pro.SQLPlusPlaceholderReplacer.replacePlaceholders(SQLPlusPlaceholderReplacer.java:132) at org.flywaydb.core.internal.util.line.PlaceholderReplacingLine.getLine(PlaceholderReplacingLine.java:36) at org.flywaydb.core.internal.database.ExecutableSqlScript.extractStatements(ExecutableSqlScript.java:156) at org.flywaydb.core.internal.database.ExecutableSqlScript.(ExecutableSqlScript.java:133) at org.flywaydb.core.internal.database.oracle.OracleSqlScript.( org.flywaydb.core.internal.database.oracle.OracleDatabase.doCreateSqlScript(OracleDatabase.java:126),org.flywaydb.core.internal.database.Database.createSqlScript(Database.java:163),org.flywaydb.core.internal.resolver.sql.SqlMigrationExecutor.getSqlScript(SqlMigrationExecutor.java:96),org.flywaydb.core.internal.resolver.sql.SqlMigrationExecutor.executeInTransaction(SqlMigrationExecutor.java:109),org)。flywaydb.core.internal.command.DbMigrate.isExecuteGroupInTransaction(DbMigrate.java:312) at org.flywaydb.core.internal.command.DbMigrate.applyMigrations(DbMigrate.java:275) at org.flywaydb.core.internal.command.DbMigrate.migrateGroup(DbMigrate.java:244) at org.flywaydb.core.internal.command.DbMigrate.access$100(DbMigrate.java:53) at org.flywaydb.core.internal.command.DbMigrate$2.call(DbMigrate.java:163)在org.flywaydb.core.internal.command.DbMigrate$2.call(DbMigrate.java:160) at org.flywaydb.core.internal.database.Connection$1.call(Connection.java:145) at org.flywaydb.core.internal.util.jdbc.TransactionTemplate.execute(TransactionTemplate.java:74) at org.flywaydb.core.internal.database.Connection.lock(Connection.java:141) at org.flywaydb.core.internal.schemahistory.JdbcTableSchemaHistory.lock(JdbcTableSchemaHistory( org.flywaydb.core.internal.command.DbMigrate.migrateAll(DbMigrate.java:160) at org.flywaydb.core.internal.command.DbMigrate.migrate(DbMigrate.java:138) at org.flywaydb.core.Flyway$1.execute(Flyway.java:947) at org.flywaydb.core.Flyway$1.execute(Flyway.java:910) at org.flywaydb.core.Flyway.execute(Flyway.java:1238) )在org.flywaydb.core.Flyway.migrate(Flyway.java:910) at org.flywaydb.commandline.Main.executeOperation(Main.java:161) at org.flywaydb.commandline.Main.main(Main.java:108)构建步骤'Execute‘标记为failure : FAILURE

EN

回答 5

Stack Overflow用户

发布于 2021-01-31 07:34:55

application.yml中使用spring引导。添加下面的placeholderReplacement: false

代码语言:javascript
复制
 flyway:
    baseline-on-migrate: false
    sql-migration-prefix: V
    table: migration
    placeholderReplacement: false

这种情况正在发生,因为我的.SQL迁移文件中有${name}的HTML。

所以它想要取代它!我希望它是,和一样,插入到数据库中。

汇总:在我的例子中,我希望它始终是禁用的,因为我没有使用它

引用不同配置中的可能用法

票数 2
EN

Stack Overflow用户

发布于 2019-03-06 10:38:38

flyway.placeholderReplacement=false只适用于天桥占位符,而不是SQL*Plus占位符。

若要禁用特定于SQL*Plus的占位符,必须在脚本中包括SET DEFINE OFF

票数 1
EN

Stack Overflow用户

发布于 2020-06-22 16:29:31

我认为,解决此错误的最佳方法是覆盖默认前缀和后缀

代码语言:javascript
复制
flyway.placeholderPrefix=$${
flyway.placeholderSuffix=}

因为由于某些原因,禁用此功能可能是不可接受的:例如,使用天桥变量。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54998347

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档