Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Werteliste mit Tabelle vergleichen

Es gibt viele Arten von integrierten öffentlichen Sammlungen. Sie können eine davon wie folgt nutzen:

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;

Um eine Liste öffentlicher Typen in Ihrer Datenbank anzuzeigen, führen Sie :

aus
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')

der Hinweis

/*+ cardinality(a, 1) */

wird nur verwendet, um Oracle mitzuteilen, wie viele Elemente sich in unserem Array befinden (wenn nicht angegeben, wird standardmäßig von 8k Elementen ausgegangen). Stellen Sie einfach eine einigermaßen genaue Zahl ein.