SQL> define     p_empno=7839
SQL> variable   bonus1  number(10,2);
用法: VAR[IABLE] [ <variable> [ NUMBER | CHAR | CHAR (n [CHAR|BYTE]) |
                    VARCHAR2 (n [CHAR|BYTE]) | NCHAR | NCHAR (n) |
                    NVARCHAR2 (n) | CLOB | NCLOB | REFCURSOR ] ]
SQL> variable   salary number(10,2);
用法: VAR[IABLE] [ <variable> [ NUMBER | CHAR | CHAR (n [CHAR|BYTE]) |
                    VARCHAR2 (n [CHAR|BYTE]) | NCHAR | NCHAR (n) |
                    NVARCHAR2 (n) | CLOB | NCLOB | REFCURSOR ] ]
SQL> begin
  2    select sal 
  3    into :salary 
  4    from emp 
  5    where empno=to_number(&p_empno);
  6    :bonus1:=
  7     case 
  8      when :salary>10000      then :salary*0.2
  9      when :salary<=10000 and :salary>=5000 then :salary*0.15
 10      when :salary<5000       then :salary*0.1
 11      when :salary is null    then 0
 12     end;
 13  end;1.为什么我第二句写成number(10,2)它就出错呢,如果写成number它就没事.
2.case条件中,WHEN后面是表达式可以吗?
3.如果CASE条件中的一个条件满足了,是立刻退出来吗?