има много вградени видове обществени колекции. можете да използвате един от тях по този начин:
with ids as (select /*+ cardinality(a, 1) */ column_value id
from table(UTL_NLA_ARRAY_INT(100, 200, 300)) a
)
select ids.id, case when m.id is null then '**NO MATCH**' else m.value end value
from ids
left outer join my_table m
on m.id = ids.id;
за да видите списък с публични типове във вашата DB, изпълнете :
select owner, type_name, coll_type, elem_type_name, upper_bound, precision, scale from all_coll_types
where elem_type_name in ('FLOAT', 'INTEGER', 'NUMBER', 'DOUBLE PRECISION')
подсказката
/*+ cardinality(a, 1) */
се използва просто, за да каже на Oracle колко елемента има в нашия масив (ако не е посочено, по подразбиране ще бъде предположение за 8k елемента). просто задайте сравнително точно число.