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()
を置き換えるため 関数-調査する価値のあるアプローチかもしれませんが、パフォーマンスの向上という点では、どちらかといえば、おそらく多くのことを提供することはありません。
一時テーブルは、メモリ内で実行する場合に比べてパフォーマンスが非常に悪いため、お勧めできません。