易截截图软件、单文件、免安装、纯绿色、仅160KB

关于oracle中使用nvl函数时,对空字符串的理解

 昨天下班之前在程序中遇到了一个使用nvl的sql语句,相信这个函数大家都应该使用过,并且应该是很简单的。
因为之前做的数据库移植时遇到过这个问题,所以今天拿来在这里记载一下。
其中有一段where条件是这样的:
and ((nvl('', ' ') <> ' ' and a.benifitvchno like '%%') or
       (nvl('', ' ') = ' ' and a.benifitvchno like '%'))
以上是在plsql中打出的,基本上的意思就是如果a.benifitvchno是空值的话,下面的条件会成立,
如果有值的话上面的语句会成立。实际上在nvl后面的‘’中应该是那个a.benifitvchno的值,因为在这里是空,所以显示为‘’。
这里要着重说明的是oracle对于‘’的处理默认是null的,而‘ ’才是空字符串,(前面是‘’,后面是‘ ’,这里区别是后者中间有空格),所以就是这里是有区别的,因此如果将上面语句写为都是没有空格的‘’,结果肯定是不对的。
补充:今天在csdn上问了下,
       可以使用以下语句实验:
      (1)
select

1

from
dual
where
nvl(
''
,
''
)
=

''
        (2)select
1 from
dual where
nvl('', '') is null
      以上两句中第一句不会有值,第二句才会有值。
      正像
wh62592855
朋友说的:null=null,返回应该是FALSE。只要记住NULL不等于任何值就是了,也不等于NULL。
特此非常感谢
wildwave,
wh62592855
两位朋友的解答。
                        


相关文档:

Oracle未提供相应驱动

  本机电脑上有安装ORACLE10G的客户端,后来由于需要玩了一下ODAC,后来又卸载掉了。结果,使用C#进行连接的时候报:
        未在本地计算机注册“OraOLEDB.Oracle.1”提供程序
  然后,新建一个UDL进行测试,发现Oracle   Provider & ......

ORACLE常用转换函数、数值函数、字符串函数介绍

本文来自:WWW.NC21.CN  新世纪平台网  
本文更多将会介绍三思在日常中经常会用到的,或者虽然很少用到,但是感觉挺有意思的一些函数。分二类介绍,分别是:
  著名函数篇 -经常用到的函数
  非著名函数篇-即虽然很少用到,但某些情况下却很实用
  注:N表示数字型,C表示字符型,D表示 ......

oracle 存储过程的基本语法

oracle 存储过程的基本语法 及注意事项
oracle 存储过程的基本语法
1.基本结构
CREATE OR REPLACE PROCEDURE 存储过程名字
(
    参数1 IN NUMBER,
    参数2 IN NUMBER
) IS
变量1 INTEGER :=0;
变量2 DATE;
BEGIN
END 存储过程名字
2.SELECT INTO STATEMENT
  将selec ......

ORACLE MODEL子句学习笔记

ORACLE 10G中新增的MODEL子句可以用来进行行间计算。MODEL子句允许像访问数组中元素那样访问记录中的某个列。这就提供了诸如电子表格计算之类的计算能力。
 
1、MODEL子句示例
下面这个查询获取2003年内由员工#21完成的产品类型为#1和#2的销量,并根据2003年的销售数据预测出2004年1月、2月、3月的销量。
 
......

Oracle BAM原理简介

 Oracle BAM全称为Oracle Busines Activity Monitoring,中文叫Oracle 业务活动监视
,BAM有两种功能
    1.创建实时report
    2.创建基于一定规则的alert
 BAM最大的特点就是,它的功能都是实时的,任意的数据变化,他都能实时的反应到正在显示的report上去,也能立刻触发al ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号