Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Cara mendeklarasikan kursor setelah bagian awal dari prosedur Oracle PL/SQL

Untuk melakukannya, Anda perlu mendeklarasikan blok baru:

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;

Namun, saya tidak mengerti mengapa Anda tidak bisa mendeklarasikan kursor ini bersama dengan kursor y, yang ditentukan dengan 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)
            ); 

Anda kemudian dapat mereferensikan kursor sebagai berikut:

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. ORA-30926:tidak bisa mendapatkan set baris yang stabil di tabel sumber

  2. Menginstal ROracle di Mac OS X - apa yang dibutuhkan dari Oracle?

  3. Pengguna skema Oracle tidak dapat membuat tabel dalam prosedur

  4. Oracle FETCH FIRST 1 ROW dengan pernyataan UNION ALL

  5. cx_Oracle.DatabaseError:ORA-12514:TNS:pendengar saat ini tidak mengetahui layanan yang diminta di deskriptor koneksi