由flyway引发的对oracle查询sql语句表名大小写问题

一,问题抛出

1.配置项目flyway

  flyway:
    # 到新的环境中数据库中有数据,且没有flyway_schema_history表时,是否执行迁移操作。
    # 如果设置为false,在启动时会报错,并停止迁移;
    # 如果设置为true,则生成history表并完成所有的迁移,要根据实际情况设置;
    baseline-on-migrate: true
    # 执行时标记的tag 默认为<<Flyway Baseline>>
    baseline-description: <<Flyway Baseline>>
    # 是否启用flyway
    enabled: true
    # 检测迁移脚本的路径是否存在,如不存在,则抛出异常
    check-location: true
    # 脚本位置
    locations: classpath:flyway
    # 在迁移时,是否校验脚本,假设V1.0__初始.sql已经迁移过了,在下次启动时会校验该脚本是否有变更过,则抛出异常
    validate-on-migrate: false

2.生成记录表 “name”.“flyway_schema_history”

在这里插入图片描述

select t.*, t.rowid from "flyway_schema_history" t;---执行成功
select t.*,t.rowid   from flyway_schema_history t ;---执行失败

看到plsql中生成的表名是小写的,才去想探究一下真实原因。

3.结论

一、为什么oracle查询时候一定要加双引号?原因如下:
1、oracle表和字段是有大小写的区别。oracle默认是大写,如果我们用双引号括起来的就区分大小写,如果没有,系统会自动转成大写。(mysql不区分大小写)

2、我们在使用plsql建表,如果表名没有"",默认大写,,查询的时候同理。

3,flyway启动的时候执行
Creating Schema History table “NJCHECKER”.“flyway_schema_history” with baseline ,带了双引号,所以建的表是表名小写,字段也是小写,查询时需要带上“”。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值