Oracle
 sql >> база данни >  >> RDS >> Oracle

Сравняване на списък от стойности с таблица

има много вградени видове обществени колекции. можете да използвате един от тях по този начин:

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 елемента). просто задайте сравнително точно число.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Spring JDBC Не можа да зареди клас JDBC драйвер [oracle.jdbc.driver.OracleDriver]

  2. Не може да се зареди файл или сборка за Oracle.DataAccess в .NET

  3. Премахнете обръщане на двойки с помощта на SQL

  4. Задайте изтичане/гратисен период на потребителска парола на Oracle

  5. Предотвратяване на SQL инжектиране с динамична SQL ALTER USER заявка