create or replace function sum_str(p_str      varchar2) return number is
 v_tot  number := 0;
 v_str  varchar2(1);
begin
  for i in 1..length(p_str) loop
     v_str := substr(p_str,i,1);
     v_tot := v_tot + to_number(v_str);
  end loop;
  return v_tot;
  exception
   when others then
   return  -999999999;
end sum_str;HQ.Wang 海清