sql >> Database teknologi >  >> RDS >> Oracle

Sådan erklærer du en markør efter startsektionen af ​​en Oracle PL/SQL-procedure

For at gøre dette skal du erklære en ny blok:

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;

Jeg kan dog ikke helt se, hvorfor du ikke bare kan erklære denne markør sammen med markøren y, defineret med en parameter:

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)
            ); 

Du kan derefter henvise til markøren således:

FOR met IN x(t.FCODE) LOOP


  1. Dynamisk SQL til at generere kolonnenavne?

  2. Hvordan konverterer man disse mærkelige karakterer? (ë, Ã, ì, ù, Ã)

  3. Sådan beregnes daglige aktive brugere (DAU) i MySQL

  4. MySQL OPRET BRUGER med en variabel?