Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Porównanie listy wartości z tabelą

istnieje wiele wbudowanych typów kolekcji publicznych. możesz wykorzystać jeden z nich w ten sposób:

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;

aby zobaczyć listę typów publicznych w Twojej bazie danych, uruchom :

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

podpowiedź

/*+ cardinality(a, 1) */

jest używany tylko do powiedzenia oracle, ile elementów znajduje się w naszej tablicy (jeśli nie jest określony, domyślnie będzie założone 8k elementów). po prostu ustaw na dość dokładną liczbę.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak eksportować i importować bazę danych w Oracle 11g (Application Express Edition)?

  2. VS2010 + sterownik Oracle:ORA-12154:TSN:nie można rozpoznać określonego identyfikatora połączenia

  3. Krok po kroku R12.2.6 Instalacja EBS na Virtual Box

  4. Funkcja Concat nie działa - nieprawidłowa liczba argumentów

  5. Oracle:Dni między dwiema datami i Wyklucz dni tygodnia, jak obsługiwać liczby ujemne