sql >> Databasteknik >  >> RDS >> Oracle

Sammanfoga samlingar i PLSQL

Om du använder 10g eller senare kan du göra CONCAT()-funktionen lite mer effektiv genom att använda MULTISET UNION-operatorn:

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;

Du kan göra saker mer effektivt genom att fylla i flera olika arrayer och sedan anropa MULTISET UNION en gång för dem alla:

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

Använder dynamisk SQL - förmodligen för att ersätta de olika get_idsN() funktioner - kan vara ett tillvägagångssätt värt att undersöka, men kommer förmodligen inte att ge dig mycket, om något, i vägen för förbättrad prestanda.

Tillfälliga bord är inte en bra idé, eftersom de presterar mycket dåligt jämfört med att göra saker i minnet.



  1. php singleton databasanslutning, är denna kod dålig praxis?

  2. Hur man använder mysql online med en stationär app

  3. Identifiera materialstycksstrukturen (BOM) i databaser

  4. Hur SQLite Trim() fungerar