使用DbHelperOra.Query查询Oracle数据库返回值为空

在完成前端项目配置并修改页面后,遇到使用DbHelperOra.Query查询Oracle数据库返回空值的问题。尽管SQL在PL/SQL中能正常执行并返回数据,但在Visual Studio中通过DbHelperOra.Query执行相同SQL时返回null。经过排查,发现是由于缺少NLS_LANG环境变量配置导致的,尤其是当SQL涉及中文字符时。设置NLS_LANG为_.ZHS16GBK并重启电脑后,问题得到解决,能够正确获取查询结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在同事的帮助下,将前端项目配置好,根据公司需要修改了四个静态页面。在一切工作准备就绪后,发现一个问题:

问题描述:将一句Sql命令放到PL/SQL软件中执行能得到一个有值的数据,但是同样的语句通过DbHelperOra.Query查询却返回了一个null数据,同一数据库中的同张表,SQL命令一致,在日志中并没有找到关于sql执行的任何异常。如下图所示,依次为PL/SQL、VS运行结果(由于公司数据库需要保密,所以打上马赛克):




在网上搜索了一下,基本上没有什么解决方法,在DbHelperOra.Query命令在同事电脑上是能查询到正确结果的,所以我猜测我电脑的数据库配置有问题或DbHelperOra.Query底层配置有问题。后来几经折腾,在组长的指导下发现是在安装Oracle客户端时没有配置NLS_LANG环境变量,由于SQL命令中含有中文字符,在利用  DbHelperOra.Query方法执行SQL语句时Sql语句中的中文字符传入数据库软件内可能会乱码,这导致查找不到数据,故将NLS_LANG环境变量设置为_.ZHS16GBK(简体中文)。在将NLS_LANG环境变量设置为_.ZHS16GBK后,需要重启电脑使得NLS_LANG环境变量设置生效,之后再利用DbHelperOra.Query就能得到正确的结果。如下图所示:




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值