er zijn veel soorten openbare collecties ingebouwd. je kunt een van hen als volgt gebruiken:
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;
om een lijst met openbare typen op uw DB te zien, voert u :
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')
de hint
/*+ cardinality(a, 1) */
wordt alleen gebruikt om orakel te vertellen hoeveel elementen er in onze array zitten (indien niet gespecificeerd, zal de standaard een aanname van 8k elementen zijn). stel gewoon in op een redelijk nauwkeurig getal.