oracle判断null和“”是不同方法,其中判断是否为null的有两种
1、select
name
from
table
where
name
is
not
null;
2使用nvl(name,value)函数,name代表判断的字段为空,后面的value为name为空时,value的值
yyy上面有索引的话非常快的。
或者还有另外一种方法,你可以试一下。
alter table xxx modify yyy not null ;
dexter@REPO>alter table ts modify id not null ;alter table ts modify id not null
第 1 行出现错误:
ORA-02296: 无法启用 (DEXTER) - 找到空值
如果有空值就会报错。
空值null比较特殊,它不能通过=或者进行查询,只能用is null或者is not null进行查询,例如你的数据中有null值,那么用 字段名=1,字段名1,字段名=null都不能把这条数据检索出来,只有字段名 is null能检索出来。 所以你需要查询的数据有两种
已经经过测试,可以。
create table test1023(id int); --创建测试表 test1023
declare cnt int;
begin
select count() into cnt from test1023;
if cnt=0 then
insert into test1023 values('1');
commit;
end if;
end;
--楼下的用的函数 是当某值为空 赋给什么值 不符合楼主的要求
--我帮你改下 执行时 先判断全面的条件 就过滤掉了空值 还有‘’ 和null 是不一样的 所以都要过滤
--希望解决了楼主的问题
where t<>'' and t is not nul and t2<>'' and t2 is not null
and tdataTime=t2dataTime
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)