SqlSugar查询达梦数据库遇到的异常情况(续)

  之前的文章提到在SqlSugar的Where函数中使用!string.IsNullOrEmpty函数查询达梦数据库时,明明数据库中有数据但就是查不出来,但相同的代码在另一台电脑上就可以正常返回数据。
  以下图中的两张表数据为例,执行下面的SQL语句无法查询到数据,但将OR B.ID ='‘去掉就可以查询到数据,或者将OR B.ID =’‘修改为OR B.ID =’ '也可以查到数据,感觉跟达梦处理空字符串的方式有关系。

SELECT  A.NAME  AS  CLASSNAME  ,B.NAME  AS  STUDENTNAME   
FROM  SCHOOL.CLASS   A  Left JOIN  SCHOOL.STUDENT   B  ON (  A.ID  =  B.CLASSID  )  
WHERE (( A.CINDEX  < 4 ) AND NOT(  B.ID  IS NULL   OR  B.ID =''))

在这里插入图片描述
  百度“达梦 空字符串”,在参考文献3中提到达梦数据库中空字符串的处理跟COMPATIBLE_MODE参数有关(参数说明见参考文献1),默认值为0,但可以修改为0:none, 1:SQL92, 2:Oracle, 3:MS SQL Server, 4:MySQL, 5:DM6, 6:Teradata, 7:PG等值。当前电脑中达梦数据库的COMPATIBLE_MODE值为2。
  将COMPATIBLE_MODE值修改为0,可以通过参考文献2中的方式修改参数值,也可以找到dm.ini文件直接修改其中的参数值,然后重启达梦服务(在达梦服务查看器中重启)。

在这里插入图片描述
  再运行本文开头的SQL语句即能正常返回数据。
在这里插入图片描述

参考文献:
[1]https://blog.youkuaiyun.com/u011197085/article/details/139359872
[2]https://blog.youkuaiyun.com/weixin_42447367/article/details/107574073
[3]https://blog.youkuaiyun.com/aoxue469/article/details/133925527

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值