易截截图软件、单文件、免安装、纯绿色、仅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 Client如何使用PLSQL Developer

 http://www.cnblogs.com/sleepywang/archive/2009/10/13/1582654.html
1. 下载oracle的客户端程序包(30M)
      
只需要在
Oracle
下载一个叫
Instant Client Package
的软件就可以了,这个软件不需要安装,只要解压就可以用了,很方便,就算重装了系统还是可以用的。
  ......

ORACLE 时间字段排序问题

 ORACLE 时间字段排序问题
早上在弄EXT排序的时候,因为数据库ID是STRING的,因此在command类里多了一个integer idSort字段,
没想到,根据这个整型的字段进行排序也不行,因为EXT分页出来的虽然是根据这个整型字段排序了。但是
各个页面没有完全的统一排序。
因此,在DAO里写了如下HQL语句:
select tbl from Tr ......

C# 读取和写入oracle的blob字段的方法

 //向数据库中写入
        private void button1_Click(object sender, EventArgs e)
        {
            oracleConnection1.Open();
      & ......

Oracle入门笔记

刚开始使用Oracle,做一些笔记以积累。
2009年11月6日  项目DSSC,服务器上创建数据库并导入数据。
创建表空间:
create tablespace ts_stone
logging
datafile 'xxx.dbf'
size 100m
autoextend on
next 100m maxsize 2048m
extent management local;
临时表空间:
create temporary tablespace temp_ts ......

Oracle回滚段满,提交问题解决办法

 1: 加大回滚段(可以给500M甚至1G)
2:分段commit
iCount :=1;
for rec in cur_name loop
  insert into  table_name (.....);//DML Lanaguage
if iCount =2000 then
   commit;
   iCount:=0;
else
  iCount:= iCount +1;
......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号