我有一个程序,我想将变量声明为数字。 此变量使用不同的列计算。 如果计算结果是负数,我怎么能将负值保存到该变量中?我一直收到这个错误:ORA-06502:PL / SQL:数字或值错误:字符到数字转换错误
declare
out_put_sum number;
begin
with input as(
select x.id,x.name,sum(case when ... then abs(x.quantity) as running_total
from xxxxxx x, yyyyyy y
where ... )
select i.running_total into out_put_sum
from input i;
if out_put_sum > 0 then ...
else ...
end if;
end;
答案 0 :(得分:2)
sum(case when......then abs(x.quantity)as
running_total
如果您使用'-'||abs(x.quantity)
来表示负值,请不要这样做。它将创建一个String。请改用-1*abs(x.quantity)
。