Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Iteruj po kolumnie w PL/SQL

Najprostszym sposobem na iterację wierszy w tabeli w PL/SQL jest wykonanie czegoś takiego jak

BEGIN
  FOR employees IN (SELECT emp_id FROM emp)
  LOOP
    dbms_output.put_line( employees.emp_id );
  END LOOP;
END;

Alternatywnie możesz pobrać wszystkie wartości EID do kolekcji PL/SQL i iterować po kolekcji, jak w tym przykładzie

DECLARE
  TYPE emp_id_tbl IS TABLE OF emp.emp_id%type;
  l_emp_ids emp_id_tbl ;
BEGIN
  SELECT emp_id
    BULK COLLECT INTO l_emp_ids 
    FROM emp;

  FOR i IN l_emp_ids .FIRST .. l_empnos.LAST
  LOOP
    dbms_output.put_line( l_emp_ids (i) );
  END LOOP;
END;

Jeśli jednak zapytanie może zwrócić tysiące wierszy, pobranie wszystkich danych do kolekcji może zająć więcej pamięci PGA niż byś chciał i może być konieczne pobieranie wierszy porcjami za pomocą klauzuli LIMIT. Ale w tym momencie wydaje się, że to nas wyprzedza.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zautomatyzowane narzędzie do migracji schematów Oracle

  2. Wyzwalacze:jak mogę zainicjować wartość w tabeli wartością z innej?

  3. Buforowanie sekwencji Oracle

  4. chcesz wyświetlać wartości dodatnie i ujemne w różnych kolumnach za pomocą jednego zapytania

  5. Callablestatement error:Brak parametru IN lub OUT w indeksie::1