Hey, Guys:

I need to decalre a cursor inside a FOR .. LOOP, because the variables in SELECT statement for the CURSOR are coming from FOR .. LOOP. How could I do this?

DECLARE
  V_AKTIV_NR    aktiv.AKTIV_NR%TYPE;
  V_PROBLEM    aktiv.PROBLEM%TYPE;
  V_ENDDAT   aktiv.ENDDAT%TYPE;
  V_ENDUHR   aktiv.ENDUHR%TYPE;
  V_AUSSAGEW   aktiv.AUSSAGEW%TYPE;
  V_LANGTEXT   aktiv.LANGTEXT%TYPE;
  V_LONGTEXT    VARCHAR2(20000);
  V_LONGTEXT_CUR  VARCHAR2(13000);
  V_LONGTEXT_TRIM VARCHAR2(2000);
  p_PROBLEM    PROBLEM.PROBLEM%TYPE; 

############# This part need to be inside FOR.. LOOP, otherwise, I wouldn't get anything.

    CURSOR AKLangTextCur IS 
 SELECT  TO_CHAR(V_ENDDAT, 'YYYYMMDD')||' '||
   V_ENDUHR||' '||
  rtrim(V_AUSSAGEW)||' '||
  rtrim(V_LANGTEXT)   thisText
        FROM AKTIV
        WHERE V_PROBLEM = p_PROBLEM
        ORDER BY Aktiv_NR; 
    AKLangTextRec   AKLangTextCur%ROWTYPE;    

################################### Above
BEGIN
  FOR v_LoopIndex IN 1..pkgFreeText.v_NumEntries LOOP
    V_AKTIV_NR := pkgFreeText.V_AKTIV_NR_P(v_LoopIndex);
    V_PROBLEM  := pkgFreeText.V_PROBLEM_P(v_LoopIndex);
    V_ENDDAT   := pkgFreeText.V_ENDDAT_P(v_LoopIndex);
    V_ENDUHR   := pkgFreeText.V_ENDUHR_P(v_LoopIndex);
    V_AUSSAGEW := pkgFreeText.V_AUSSAGEW_P(v_LoopIndex);
    V_LANGTEXT := pkgFreeText.V_LANGTEXT_P(v_LoopIndex);

  SELECT PROBLEM INTO p_PROBLEM FROM PROBLEM;

########## CURSOR DECLARE should be HERE ##########

    BEGIN
     OPEN AKLangTextCur;
          LOOP
            FETCH AKLangTextCur into AKLangTextRec;
             EXIT WHEN AKLangTextCur%NOTFOUND;
            V_LONGTEXT_CUR := V_LONGTEXT_CUR ||AKLangTextRec.thisText;                
         END LOOP;
     CLOSE AKLangTextCur;
    END;                  
  V_LONGTEXT := V_LONGTEXT || V_LONGTEXT_CUR;  

  END LOOP;
   V_LONGTEXT_TRIM := RTRIM(V_LONGTEXT, 2000);

Thanks a lot for help

Wendy



Do You Yahoo!?
Yahoo! Mail Personal Address - Get email at your own domain with Yahoo! Mail.

Reply via email to