Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Cách khai báo con trỏ sau phần bắt đầu của thủ tục Oracle PL / SQL

Để làm điều này, bạn cần khai báo một khối mới:

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;

Tuy nhiên, tôi không hiểu tại sao bạn không thể khai báo con trỏ này cùng với con trỏ y, được xác định bằng một tham số:

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

Sau đó, bạn có thể tham chiếu con trỏ do đó:

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. Định dạng dữ liệu thành một màu nhất định

  2. Có vấn đề với các thực thể JPA, Oracle 10g và thuộc tính Loại lịch không?

  3. Hợp nhất CTE Oracle

  4. ORA-00942:bảng hoặc dạng xem không tồn tại với Mẫu Spring JDBC trong Spring Boot

  5. Làm cách nào để thêm khoảng trắng vào phía trước số của tôi nếu nó là một chữ số?