You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级Spring Boot 2.5后加载schema.sql报无效SQL语句如何解决

报错截图

问题根因
  • Spring Boot 2.5重构了SQL脚本初始化逻辑,用DataSourceScriptDatabaseInitializer替换了旧版本的DataSourceInitializer,默认的SQL语句解析规则更加严格,对脚本语句的分隔符匹配、完整性校验的要求更高。
  • 解析器会按照默认的分号;拆分脚本中的所有语句,你当前遇到的报错是解析器拆分出了不完整的SQL片段new_next_idx number,这段内容本身不是合法的Oracle SQL语句,因此触发ORA-00900错误。
解决方案
  • 方案一:修正SQL脚本语法
    找到schema.sql中的第2条SQL语句,检查该语句是否完整,是否有未闭合的语法块、多余换行,确保完整语句末尾有正确的分号;结尾。如果语句中包含PL/SQL代码块,需要用DECLARE/BEGIN/END正确包裹,并且配套调整分隔符配置。
  • 方案二:调整SQL初始化配置
    在application.properties或者application.yml中添加如下配置,适配你的脚本规则:
    properties格式示例:
# 配置SQL语句分隔符,和脚本实际使用的分隔符保持一致即可
spring.sql.init.separator=;
# 如果需要兼容JPA初始化后再执行SQL脚本,可开启如下配置
spring.jpa.defer-datasource-initialization=true

yml格式示例:

spring:
  sql:
    init:
      separator: ";"
  jpa:
    defer-datasource-initialization: true
  • 方案三:临时回退旧版本逻辑
    如果需要快速恢复升级前的运行状态,可添加如下配置,使用旧版的初始化逻辑:
spring.sql.init.mode=always

内容的提问来源于stack exchange,提问作者Chetan Krishna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 06:54:01