如果是字段的值是NULL则select时是不会报“没有找到数据”的。出现“没有找到数据”应当是未找到记录,可以用exception来捕获错误,如:
begin
select uqi into num from ...
exception
when NO_DATA_FOUND then
begin
--如果未找到记录的特殊处理
end;
when others then
being
--发生其他类型错误时的处理
end;
end;
begin
select uqi into num from ...
exception
when NO_DATA_FOUND then
begin
--如果未找到记录的特殊处理
end;
when others then
being
--发生其他类型错误时的处理
end;
end;
但是建议你不要这样做,
IF NUM IS NOT NULL THEN
//处理其它事!
END IF
因为在sql没有找到记录时,num的值是不会被改变,如果在这个sql之前num的被改变了那你if里的代码永远不会被执行。可以这样
IF SQL%NOTFOUND THEN
//处理其它事!
END IF
decalare
n integer;
begin
select count (*) into n from ... where ..
if n=0 then
....
else
..
end if;
end;
“如果是字段的值是NULL,select时是不会报‘没有找到数据’的。出现‘没有找到数据’应当是未找到记录,可以用exception来捕获错误”泥的问题跟使用NVL函数无关!