不支持这种写法,try:
 declare
  grade char := 'a';
  appraisal varchar2(20);
begin
  select decode(grade,'a','exce','b','good','no') into appraisal from dual;
  dbms_output.put_line(appraisal);
end;

解决方案 »

  1.   

    oracle 9i支持 case 用法
      

  2.   

    case语句的语法由点问题,改正:declare
      grade char := 'a';
      appraisal varchar2(20);
    begin
      appraisal := case 
        when grade='a' then 'exce';
        when grade='b' then 'good';
        else 'no';
        end case
      end;
      dbms_output.put_line(appraisal);
    end;
      

  3.   

    丢了“;”,改正:declare
      grade char := 'a';
      appraisal varchar2(20);
    begin
      appraisal := case 
        when grade='a' then 'exce';
        when grade='b' then 'good';
        else 'no';
        end case ;
      end;
      dbms_output.put_line(appraisal);
    end;用这个吧---