在sql server中是如下代码:set @Rid= 1
set @TypeRid =(select top 1 RestType from #test order by id)
UPDATE #test
SET 
@rid =CASE WHEN RestType=@TypeRid THEN @rid ELSE @rid+1 END, 
@TypeRid=RestType, 
TypeRid=@Rid请教oracle中如何写(存储过程中)

解决方案 »

  1.   

    create or replace procedure test_proc
    as
      vn_rid     number(4) := 1;
      vn_typerid varchar2(10) := 0;
      cursor c_table is select RestType, rowid from #test;
    begin
      select RestType into vn_typerid from #test where rownum < 2 order by id;
      dbms_output.put_line(vn_typerid);
      for rec_c_table in c_table loop
        if rec_c_table.RestType <> vn_typerid then
          vn_rid := vn_rid + 1;
        end if;
        update #test a set a.TypeRid = vn_rid where a.rowid = rec_c_table.rowid;
      end loop;
    end;