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

Menggabungkan koleksi di PLSQL

Jika Anda menggunakan 10g atau lebih baru, Anda dapat membuat fungsi CONCAT() sedikit lebih efisien dengan menggunakan operator 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;

Anda dapat membuat segalanya lebih efisien dengan mengisi beberapa array yang berbeda dan kemudian memanggil MULTISET UNION sekali untuk semuanya:

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

Menggunakan SQL dinamis - mungkin untuk menggantikan berbagai get_idsN() fungsi - mungkin merupakan pendekatan yang perlu diselidiki, tetapi mungkin tidak akan memberi Anda banyak, jika ada, dalam hal peningkatan kinerja.

Tabel sementara bukanlah ide yang baik, karena kinerjanya sangat buruk dibandingkan dengan melakukan sesuatu di memori.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kolom Pembaruan Oracle LTRIM dan RTRIM

  2. Prosedur tersimpan SQL untuk memeriksa nilai ya/tidak dalam tabel dan menjalankan sql

  3. Alternatif untuk KEMBALI dengan INSERT...SELECT

  4. Menggunakan database Oracle untuk aplikasi ASP.NET MVC default

  5. Memanggil PROSEDUR yang tersimpan di Toad