Oracle
 sql >> база данни >  >> RDS >> Oracle

Как да декларирам курсор след началната секция на Oracle PL/SQL процедура

За да направите това, трябва да декларирате нов блок:

for t in y loop 
    DECLARE
    cursor X IS ( 
                SELECT DISTINCT s.NIF PREMISE,a.COD_UNICOM READING, A.COD_LECT_AREA AREA
                FROM SUMCON s, LECT_AREAS a 
                WHERE a.COD_UNICOM  = t.FCODE
                AND s.NUM_SUM IN (select num_sum from RFC_UPD_NEW_MRSP_POOL where cod_unicom = t.FCODE)
                ); 
     BEGIN

        for met in x loop 
...
        end loop;
     END;

Въпреки това не разбирам защо не можете просто да декларирате този курсор заедно с курсора y, дефиниран с параметър:

cursor X (p_FCODE RFC_UPD_NEW_MRSP_POOL.cod_unicom%TYPE) IS ( 
            SELECT DISTINCT s.NIF PREMISE,a.COD_UNICOM READING, A.COD_LECT_AREA AREA
            FROM SUMCON s, LECT_AREAS a 
            WHERE a.COD_UNICOM  = p_FCODE
            AND s.NUM_SUM IN (select num_sum from RFC_UPD_NEW_MRSP_POOL where cod_unicom = p_FCODE)
            ); 

След това можете да посочите курсора по следния начин:

FOR met IN x(t.FCODE) LOOP


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. как да намеря разликата между времевия печат в oracle?

  2. Oracle:'=ANY()' срещу 'IN ()'

  3. Как мога да обобщя данни в дървовидна структура в SQL от деца към родител?

  4. Oracle не прави разлика между нулеви и празни низове?

  5. XMLTABLE в oracle - XQuery динамичен тип несъответствие:очаквана единична последователност - получена последователност от множество елементи