sql >> データベース >  >> RDS >> Oracle

PLSQLでのコレクションの連結

    10g以降を使用している場合は、MULTISET UNION演算子を使用して、CONCAT()関数をもう少し効率的にすることができます。

    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;
    

    いくつかの異なる配列にデータを入力し、それらすべてに対してMULTISET UNIONを1回呼び出すことで、処理をより効率的にすることができます。

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

    動的SQLの使用-おそらくさまざまなget_idsN()を置き換えるため 関数-調査する価値のあるアプローチかもしれませんが、パフォーマンスの向上という点では、どちらかといえば、おそらく多くのことを提供することはありません。

    一時テーブルは、メモリ内で実行する場合に比べてパフォーマンスが非常に悪いため、お勧めできません。



    1. SQLデータベースにアラビア文字を挿入する方法は?

    2. SQL2005/2008で二重引用符をエスケープする

    3. データベースからデータを取得し、データが到着したときに停止するタイムリーな間隔

    4. MySQLサービスの起動時にSQLクエリを実行する