oracle里的空字符串是null吗?

http://stackoverflow.com/questions/203493/why-does-oracle-9i-treat-an-empty-string-as-null

再看我们的数据库,都是varchar2类型的,默认值是‘ ’(有空格),但又是nullable的。所以再要排除空记录(包括空值和默认值),应该是

XXX is not null and xxxx <> ‘ ’(有空格) 或者 nvl(xxx,‘ ’)<> ‘ ’

后则写起来简单一些。

update:

经试验,这种做法比较简洁(必较即要判断 is null,又要判断一个空格的做法)

trim(XXX) is null

当XXX是空格或是null值(空串)的时候都成立

不为空就则改成is not null

比如

select  sop_destination_warehouse from SALES_ORDER_HEADERS where trim(sop_destination_warehouse) is null 返回的是sop_destination_warehouse为空的记录

select  sop_destination_warehouse from SALES_ORDER_HEADERS where trim(sop_destination_warehouse) is  not null 返回的是sop_destination_warehouse有值的记录。

另:安装ODP.net可以解决System.Data.OracleClient   requires   Oracle   client   software   version   8.1.7   or   greater.的错误。并且,要给予aspnet账号(iis5.1,其他版本看具体服务进程的用户)oracle client目录读写权限。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值