从别的表中选取一个字段的值,此字段可能为空,也可能不是空,
现在要把此数据放入一个变量中,如何做!
例如:
select uqi into num from emp_cod where uqi=100// 变量有可能有值有可能是NULL,但变量中是NULL时此句出错说没有找到数据。我还必须要此空值,要判断下面的事!
IF NUM IS NOT NULL THEN
//处理其它事!
END IF
...全文
6011打赏收藏
oracle中NULL值的问题(急)
从别的表中选取一个字段的值,此字段可能为空,也可能不是空, 现在要把此数据放入一个变量中,如何做! 例如: select uqi into num from emp_cod where uqi=100// 变量有可能有值有可能是NULL,但变量中是NULL时此句出错说没有找到数据。我还必须要此空值,要判断下面的事! IF NUM IS NOT NULL THEN //处理其它事! END IF
select uqi into num from emp_cod where uqi=100这条语句只有两种可能结果,一种是uqi=100,另一种就是没有找到记录,你在说num可能为NULL的情况,那就是说明你在number num是没有初始化啊,系统默认是NULL。
但是建议你不要这样做,
IF NUM IS NOT NULL THEN
//处理其它事!
END IF
因为在sql没有找到记录时,num的值是不会被改变,如果在这个sql之前num的被改变了那你if里的代码永远不会被执行。
如果是字段的值是NULL则select时是不会报“没有找到数据”的。出现“没有找到数据”应当是未找到记录,可以用exception来捕获错误,如:
begin
select uqi into num from ...
exception
when NO_DATA_FOUND then
begin
--如果未找到记录的特殊处理
end;
when others then
being
--发生其他类型错误时的处理
end;
end;