Можно создать функцию, использующую varray, затем ее использовать для такого суммирования, например так:
create type t_varr is varray(100) of number;
create or replace function sum_varr(p_arr t_varr)
return number IS
v_res number;
begin
select sum(nvl(column_value,0)) into v_res
from table(p_arr);
return v_res;
end;
/
with t as (select 1 a, null b, null c from dual union all
select null a, null b, null c from dual union all
select null a, 2 b, 3 c from dual union all
select 5 a, 2 b, 1 c from dual)
select t.*, sum_varr(t_varr(a,b,c))
from t;