có rất nhiều được xây dựng trong các loại bộ sưu tập công cộng. bạn có thể tận dụng một trong số chúng như thế này:
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;
để xem danh sách các loại công khai trên DB của bạn, hãy chạy:
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')
gợi ý
/*+ cardinality(a, 1) */
chỉ được sử dụng để cho oracle biết có bao nhiêu phần tử trong mảng của chúng ta (nếu không được chỉ định, mặc định sẽ là giả định có 8k phần tử). chỉ cần đặt thành một số chính xác hợp lý.