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

Łączenie kolekcji w PLSQL

Jeśli używasz 10g lub nowszego, możesz uczynić funkcję CONCAT() nieco bardziej wydajną, używając operatora MULTISET UNION:

FUNCTION concat (
    iList1 IN ID_ARRAY,
      iList2 IN ID_ARRAY
) 
RETURN ID_ARRAY IS
    lConcat ID_ARRAY;
BEGIN
    lConcat := iList1 
               MULTISET UNION  
               iList2 A
    ;
    RETURN lConcat;
END concat;

Możesz zwiększyć wydajność, wypełniając kilka różnych tablic, a następnie wywołując MULTISET UNION raz dla wszystkich:

   lConcat := iList1 
               MULTISET UNION  
               iList2  
               MULTISET UNION  
               iList3
               MULTISET UNION  
               iList4;  

Używanie dynamicznego SQL - prawdopodobnie w celu zastąpienia różnych get_idsN() funkcje - może to być podejście warte zbadania, ale prawdopodobnie nie da ci zbyt wiele, jeśli w ogóle, w drodze do poprawy wydajności.

Tabele tymczasowe nie są dobrym pomysłem, ponieważ działają bardzo słabo w porównaniu do wykonywania czynności w pamięci.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Konwersja daty XSD xs:dateTime na datę Oracle

  2. Napisz zapytanie, aby znaleźć nazwisko studenta(ów), który uzyskał maksymalną ocenę z inżynierii oprogramowania. Sortuj wynik na podstawie nazwy

  3. Wyrocznia:„=DOWOLNY()” kontra „IN ()”

  4. zapytanie Oracle, aby znaleźć uprawnienia w procedurze składowanej

  5. Wprowadzenie do pakietów PL/SQL w bazie danych Oracle