关于数据库CHAR类型的问题

数据库中char类型表示固定长度, 例如char(2), 表示两个长度, 如果存入一个字符"1", 会自动向后补位一个空格, 变成"1 "来满足char(2)的约束.

由于业务原因使用的oracle, 其中字段名为EDU_LEVEL的数据格式被人设置为了char(2):
2018_12_08_14_35_28_

实际存入的是一位数字, 并对其做了字典, 如下:
2018_12_08_14_37_00_

在做业务时遇到问题:
2018_12_08_14_38_38_

因为前台保存字典类型为map类型, 根据字典的键获得值, 例如根据1能获取到值"小学".

但是由于char(2)的约束, 后台传来的值为"1 ", 多了一个空格. 查看后台传来的值:
2018_12_08_14_43_16_

可以看到edu_level字段的值多了一个空格. 前台map中根据这样的键来取到的值就是undefined了. 调用undefined的value属性就会报如下错:

TypeError: Cannot read property 'value' of undefined

解决办法可以将edu_level改为数字类型或varchar类型, 避免空格的自动填充.

之前自己建表这种类型值都会设置为数字类型, 遇到这问题一下子没反应过来. 基础知识很重要啊... 有时候被坑完全是知识掌握的不牢固.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值