Oracle转达梦数据库 针对 null 和 空字符串的处理
Oracle转达梦数据库 针对 null 和 空字符串的处理
最近在进行 Oracle 转达梦的时候遇到了一点问题。
问题描述:当我在 Oracle 数据库使用 ”select * from table where table.name is null “进行查询的时候可以查询出来数据,同样的语句在达梦数据库查询的时候查询不到数据,刚开始还疑问是字段类型的问题。之后给改了达梦的字段类型还是不行。结果 我改了一下SQL ”select * from table where table.name=‘’ “ 结果数据一下就查询出来了。
问题原因:达梦数据库Q默认NU儿L与空字符串不等价,而Oracle是默认NULL与空串等价的,当代码里以某个值为空来进行查间时,有可能判断的条件是NULL或空串,本来NULL与空串都算空但最后查出两种情况(如NU儿L不能把空串查间出来,空串不能把NULL查出来)
解决方法:
1查询条件把NU儿L及"都加上中间用连接
2.直接改达梦数据库的配置修改dmQ.ini文件COMPATIBLE MODE=2,重启服务即可
参考资料:达梦技术文档
https://eco.dameng.com/document/dm/zh-cn/faq/faq-dm-databse.html#DM%20%E5%A6%82%E4%BD%95%E5%B0%86%E7%A9%BA%E5%AD%97%E7%AC%A6%E4%B8%B2%E8%87%AA%E5%8A%A8%E8%BD%AC%E6%8D%A2%E4%B8%BA%20NULL
文章目录
HTML 638 字数 9 段落
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)