Oracle CHAR(1)多了两个空格
同事就给了两张图
SQL 日志显示 java执行 查询结果为0条 但是同一串SQL 复制到Navicat执行 查到数据了
导致 查询自己的待办任务出不来
头大头大~
还好还截了个页面图片
眼尖看到 taskStatus 多了俩空格
但是 Oracle TASK_STATUS 字段设置的 CHAR(1) 怎么会多出空格…
检查线上数据库 测试服务器的没问题 正式服务器的 类型长度都正确 但是就是每条记录都多了 两个空格 明明是 CHAR(1) 长度限制1 但就是长了
删除字段 重新添加 就正常了
Oracle 给我出两个问题
- java 和 Navicat 同语句查询获得的结果不相同
- CHAR(1) 怎么会多出俩空格 “0 “ 应该会报错 value too large for column “TASK_STATUS” (ACTUAL:3,MAXIMUM:1)
目前是修改为 VARCHAR2(1) 就不会有这个问题
stackoverflow 也有其他人提出了 CHAR(1) 变成 CHAR(3)的问题 估计是相同问题