下面这段程序中的循环怎样理解呀,看不懂怎么循环的
type rec1 is record (
  f varchar2(25) ,
  v varchar2(25)
  );
FOR REC1 IN ( SELECT ROWID,A.* FROM SFIS1.EUI64_ALLOC_T a 
                       WHERE PART_NUMBER  = P_OUIP
                             AND MAC_HEX  = P_OUI
                             AND IN_USED  ='1'  --己開始使用的範圍
                             ORDER BY MAC_START, CREATE_DATE
                     )
        LOOP
          C_ROWID       := REC1.ROWID;
          C_MAC_START   := REC1.MAC_START;
          C_MAC_END     := REC1.MAC_END;
          C_MAC_CURRENT := REC1.MAC_CURRENT;
          EXIT;
        END LOOP;