本帖最后由 wantdrink 于 2011-04-07 19:32:01 编辑

解决方案 »

  1.   

    create or replace procedure test(
    type_list in varchar2,
    result out sys_refcursor
    ) as
      cursor cv is
          select id
          from temp
          where type in (type_list);  --将此处的引号拿掉
    begin
      for t in cv loop
         insert into xxx
         values(t.id)
      end loop;  open result for 'select * from xxx';
    end;
      

  2.   

    /* Formatted on 2011/04/08 09:38 (Formatter Plus v4.8.8) */
    CREATE OR REPLACE PROCEDURE TEST (
       type_list   IN       VARCHAR2,
       RESULT      OUT      sys_refcursor
    )
    AS
       CURSOR CV
       IS
          SELECT ID
            FROM temp
           WHERE TYPE IN (''||type_list||'');
    BEGIN
       FOR t IN CV
       LOOP
          INSERT INTO xxx
               VALUES (t.ID);
       END LOOP;   OPEN RESULT FOR 'select * from xxx';
    END;
      

  3.   

    某行还缺少“;”INSERT INTO xxx
      VALUES (t.ID);