加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

如何应对Oracle数据库 表中的字段为空值情况

(2017-11-09 10:58:48)
标签:

nul和null

oracle

oracle报表显示不完整

分类: 技术类
今天开发Oracle EBS中一张报表时 ,遇到了个问题,报表后面的数据不能正常显示
从不能显示的字段位置查起,发现了一个问题,就是Oracle数据库 表中的字段看着为空值,实际有数据。

如何应对Oracle数据库 表中的字段为空值情况
下面的SQL ,截图,以及验证方法 帮助我们判断 这类情况

SELECT lengthb(x.prime_k_number)  字段数据长度
           , ascii(x.prime_k_number)  字段数据对应的ASCII
           , NVL(x.prime_k_number,'XX')  字段为空则xx
  FROM cux_lyh_test20171109 x;

如何应对Oracle数据库 <wbr>表中的字段为空值情况

1通过上面SQL 以及查询结果看 prime_k_number 给我们的第一感觉是空值,
2.通过NVL(x.prime_k_number,'XX') 转换后却不能输出 XX 因此说明 prime_k_number 字段 实际不为空 是有数据的,
3通过lengthb((x.prime_k_number) 结果 来验证我们第2项的判断是正确的,果然数据为1 说明 x.prime_k_number 不为空值,
4.不为空值,为什么我们看不到?因为是对于SQL来说 一种特殊的字符,通过Ascii码来查看
发现结果为 0
5.通过 Ascii码对照关系 发现   编号为0的就是我们平时说的什么也没有,专业一点就是空,用符号NUL或null表示。

针对上述的问题 ,就能定位到问题,从而有针对性解决。
-- 刘轶鹤






0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有