存储过程空值处理
发布网友
发布时间:2022-04-08 18:41
我来回答
共3个回答
热心网友
时间:2022-04-08 20:11
declare
v_num int;
v_num1 int;
select count(*) into v_num1 from table1;
if v_num1=0
then v_num:=0
else
select a.num1 into v_num from table1 ;
end if;
大概就这个意思吧
热心网友
时间:2022-04-08 21:29
在查询时加判断
select a.num1 into v_num from table1 where a.num1 is not null
或者 单空值时定义固定值
select isnull(a.num1,0) into v_num from table1 where a.num1 is not null追问where a.num1 is not null,在这里是没有作用的,因为不是查询到的记录的num1字段是空,而是查询结果根本没有任何记录,什么都没有查询到,在into的时候会报错。
热心网友
时间:2022-04-08 23:03
把这个函数加入数据库,调用函数提前判断一下数据库中有没有数据。
有数据返回1无数据返回0
function fun_ExistRecord (stablename in varchar2,sWhereItem in varchar2) return number
is
ssql varchar2(1000);
iR number(1);
begin
if swhereitem is null then
ssql:='select case when exists ( select * from ' || stablename || ' ) then 1 else 0 end as aa from al';
else
ssql:='select case when exists ( select * from ' || stablename || ' where ' ||
swhereitem ||' ) then 1 else 0 end as aa from al' ;
end if ;
execute immediate ssql into ir;
return ir;
end fun_ExistRecord;