如何将负值保存到pl / sql变量中?

时间:2017-11-26 23:32:17

标签: sql oracle variables plsql

我有一个程序,我想将变量声明为数字。 此变量使用不同的列计算。 如果计算结果是负数,我怎么能将负值保存到该变量中?我一直收到这个错误: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;

1 个答案:

答案 0 :(得分:2)

sum(case when......then abs(x.quantity)as 
             running_total

如果您使用'-'||abs(x.quantity)来表示负值,请不要这样做。它将创建一个String。请改用-1*abs(x.quantity)