如题DECLARE 
CURSOR cur IS SELECT DISTINCT staff_charged_id FROM xl_charged_info WHERE ROWNUM <=20 ORDER BY staff_charged_id;
temp NUMBER;
str VARCHAR2(500);
BEGIN
     FOR a IN cur LOOP
         dbms_output.put_line(a.staff_charged_id);
         str:='SELECT A.* FROM (SELECT STAFF_CHARGED_ID,CHARGE_ID,SUM(B_AMOUNT) A_AMOUNT,SUM(E_AMOUNT) B_AMOUNT,'||
         'SUM(F_AMOUNT) F_AMOUNT,SUM(B_CNT) B_CNT,SUM(E_CNT) E_CNT,SUM(F_CNT) F_CNT,SUM(B_DISC_AMOUNT) B_DISC_AMOUNT,'||
         'SUM(E_DISC_AMOUNT) E_DISC_AMOUNT,SUM(F_DISC_AMOUNT) F_DISC_AMOUNT,MAX(STAFF_ID) STAFF_ID FROM XL_CHARGED_INFO'||
         ' WHERE STAFF_CHARGED_ID = '''||a.staff_charged_id||'''GROUP BY STAFF_CHARGED_ID, CHARGE_ID ORDER BY STAFF_CHARGED_ID) A';
         dbms_output.put_line(str);
         execute IMMEDIATE str INTO temp;--这个str返回的数据时多行,我想循环这个str执行后的sql,该如何解决?
     END LOOP;
END;
怎样才能让一个游标指向 str 所拼出来的sql?