create or replace procedure qqq
 is
begin
  CURSOR cur IS 
  SELECT userid,groupid
  FROM ugrelation  
  WHERE groupid=10001
  ORDER BY userid;  
  
  declare
    r ugrelation%rowtype
  open cur;
  loop
  fetch cur 
  into r;
  exit when cur%notfound;
  dbms_output.put_line(user_id||group_id);
 
end loop;
  close cur;
commit;
end qqq;

解决方案 »

  1.   

    亲,还要多注意下oracle的语法哦。
    CREATE OR REPLACE PROCEDURE QQQ IS
    BEGIN
      FOR I IN (SELECT USERID, GROUPID
                  FROM UGRELATION
                 WHERE GROUPID = 10001
                 ORDER BY USERID) LOOP
        DBMS_OUTPUT.PUT_LINE(USER_ID || GROUP_ID);
      END LOOP;
    END QQQ;
      

  2.   

    create or replace procedure qqq
     is
    begin
      CURSOR cur IS 
      SELECT userid,groupid
      FROM ugrelation  
      WHERE groupid=10001
      ORDER BY userid;  
      
      declare
        r ugrelation%rowtype;
      open cur;
      loop
      fetch cur into r;
      exit when cur%notfound;
      dbms_output.put_line(user_id||group_id);
     
    end loop;
      close cur;
    commit;
    end qqq;
      

  3.   

    create or replace procedure qqq
     is
      CURSOR cur IS 
      SELECT userid,groupid
      FROM ugrelation  
      WHERE groupid=10001
      ORDER BY userid;  
      r cur%TYPE;
     BEGIN
      open cur;
        loop
       fetch cur INTO r;
      dbms_output.put_line(r.user_id||r.group_id);
       exit when cur%notfound;
    end loop;
      close cur;
    end qqq;
      

  4.   


    CREATE OR REPLACE PROCEDURE QQQ
    IS
        V_JOB_ID VARCHAR2(30);
        V_COMPANY_CODE VARCHAR2(30);
        CURSOR CUR IS
          SELECT JOB_ID,COMPANY_CODE
          FROM ETL.TA_ETL_JOB
          WHERE ROWNUM<10;
    BEGIN
        OPEN CUR;
        LOOP
            FETCH CUR INTO V_JOB_ID,V_COMPANY_CODE;
            EXIT WHEN CUR%NOTFOUND;
            DBMS_OUTPUT.PUT_LINE(V_JOB_ID||V_COMPANY_CODE);
        END LOOP;
        CLOSE CUR;
        COMMIT;
    END QQQ;