Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

So sánh danh sách các giá trị với bảng

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ý.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tại sao một từ đồng nghĩa Oracle lại trả về một số hàng khác nhau cho bảng bên dưới?

  2. Sử dụng Oracle:Tôi có thể sử dụng biến được tạo 'động' trong mệnh đề xoay không?

  3. Làm cách nào để sử dụng tên phân vùng làm tham số trong câu lệnh select?

  4. Oracle Làm thế nào để cấp quyền TẠO BẤT KỲ THƯ MỤC NÀO với hạn chế rằng tất cả các thư mục phải được tạo bên trong một thư mục nhất định?

  5. Oracle Hàm để cập nhật một bảng, nếu bản ghi là null thì INSERT