请大侠,给予指点,下面是SQL
declare
type varrec is record (var1 varchar2(10),var2 varchar2(10),var3 varchar2(10));
vrec varrec;
begin
for i in 1..3 loop
case i 
when 1 then vrec.var1:='a'
when 2 then vrec.var2:='b'
when 3 then vrec.var3:='c'
else vrec:=null
end;
end loop;
end;

解决方案 »

  1.   

    declare
    type varrec is record (var1 varchar2(10),var2 varchar2(10),var3 varchar2(10));
    vrec varrec;
    begin
    for i in 1..3 loop
    case  
    when i=1 then vrec.var1:='a'
    when i=2 then vrec.var2:='b'
    when i=3 then vrec.var3:='c'
    else vrec:=null
    end;
    end loop;
    end;
      

  2.   

    case不是这么用的可以看这个例子http://cindysaj.iteye.com/blog/296635
      

  3.   

    首先,感谢二位,我刚才执行了二楼的sql,还是报错
      

  4.   

    三楼,when之后,必须是结果,而不能赋值,我这么理解,对不对
      

  5.   

    SQL> declare
      2  type varrec is record (var1 varchar2(10),var2 varchar2(10),var3 varchar2(10));
      3  vrec varrec;
      4  begin
      5  for i in 1..3 loop
      6  case i
      7  when 1 then vrec.var1:='a';
      8  when 2 then vrec.var2:='b';
      9  when 3 then vrec.var3:='c';
     10  else vrec.var1:=null;
     11  end case;
     12  end loop;
     13  end;
     14  /PL/SQL procedure successfully completed
      

  6.   


    --添加红色部分
    declare
      type varrec is record(
        var1 varchar2(10),
        var2 varchar2(10),
        var3 varchar2(10));
      vrec varrec;
    begin
      for i in 1 .. 3 loop
        case i
          when 1 then
            vrec.var1 := 'a';      when 2 then
            vrec.var2 := 'b';      when 3 then
            vrec.var3 := 'c';      else
            vrec := null;
        end case; end loop;
    end;
      

  7.   


    declare
      type varrec is record(
        var1 varchar2(10),
        var2 varchar2(10),
        var3 varchar2(10));
      vrec varrec;
    begin
      for i in 1 .. 3 loop
        case i
          when 1 then
            vrec.var1 := 'a';
          when 2 then
            vrec.var2 := 'b';
          when 3 then
            vrec.var3 := 'c';
          else
            vrec := null;
        end case; end loop;
    end;