null值与任何值做任何运算结果都是null,可以直接用nvl来转换。g_total := nvl(v_salary+v_bonus,0)

解决方案 »

  1.   

    g_total :=nvl(v_salary,0)+nvl(v_bonus,0);
      

  2.   

    谢谢楼上的!
    可用IF...THEN...ELSE能实现吗?
      

  3.   

    IF 
      v_salary is null OR v_bonus is null
    THEN
      g_total := 0;
    ELSE
      g_total := v_salary + v_bonus;
    END IF;
      

  4.   

    IF 
      v_salary is null 
    THEN
      v_salary:=0;
    end if;
    IF 
      v_bonus is null 
    THEN
      v_bonus:=0;
    end if;  g_total := v_salary + v_bonus;
    这样要比楼上的要考虑的好点!
      

  5.   

    declare 
    v_salary number;
    v_bonus number;
    g_total number;
    begin
     if v_salary is null then
         v_salary:=0;
     end if;
      if v_bonus is null then
         v_bonus:=0;
     end if;
     g_total:=v_salary+v_bonus;
     dbms_output.put_line(g_total);    
    end;