Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Membandingkan daftar nilai dengan tabel

ada banyak jenis koleksi publik bawaan. Anda dapat memanfaatkan salah satunya seperti ini:

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;

untuk melihat daftar tipe publik di DB Anda, jalankan :

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

petunjuknya

/*+ cardinality(a, 1) */

hanya digunakan untuk memberi tahu Oracle berapa banyak elemen dalam array kita (jika tidak ditentukan, defaultnya adalah asumsi elemen 8k). cukup setel ke angka yang cukup akurat.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nonaktifkan pembaruan otomatis Hibernate di flush on read only sinonim

  2. Menggabungkan koleksi di PLSQL

  3. Dapatkan jumlah hari antara dua tanggal di Oracle, termasuk tanggal

  4. Perbandingan DATE Oracle SQL mengembalikan hasil yang salah

  5. javax.persistence.EntityExistsException dengan SequenceGenerator