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

Nối các bộ sưu tập trong PLSQL

Nếu bạn đang sử dụng 10g trở lên, bạn có thể làm cho hàm CONCAT () hiệu quả hơn một chút bằng cách sử dụng toán tử 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;

Bạn có thể làm cho mọi thứ hiệu quả hơn bằng cách điền vào một số mảng khác nhau và sau đó gọi MULTISET UNION một lần cho tất cả chúng:

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

Sử dụng SQL động - có lẽ để thay thế các get_idsN() khác nhau các hàm - có thể là một cách tiếp cận đáng để nghiên cứu, nhưng có lẽ sẽ không cung cấp cho bạn nhiều, nếu có, về cách cải thiện hiệu suất.

Các bảng tạm thời không phải là một ý tưởng hay, vì chúng hoạt động rất tệ so với việc thực hiện các công việc trong bộ nhớ.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách bật tính năng theo dõi trong ứng dụng oracle r12

  2. Cách lấy đối tượng Connection hiện tại trong Spring JDBC

  3. Tự động tăng trong Oracle mà không cần sử dụng trình kích hoạt

  4. Oracle RESET_PACKAGE không đặt lại giá trị của một biến trong phiên

  5. Không thể thả bảng vừa được tạo