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

Ora_hash có xác định không?

ORA_HASH chắc chắn là xác định đối với các loại dữ liệu có thể được sử dụng để phân vùng, chẳng hạn như NUMBER, VARCHAR, DATE, v.v.

Nhưng ORA_HASH không xác định cho ít nhất một số kiểu dữ liệu khác, chẳng hạn như CLOB.

Câu trả lời của tôi dựa trên điều này Jonathan Lewis bài viết về ORA_HASH .

Jonathan Lewis không nói rõ ràng rằng chúng là xác định, nhưng anh ấy đã đề cập đến ORA_HASH "dường như là hàm được sử dụng nội bộ - với hạt giống 0 - để xác định phân vùng nào thuộc về một hàng trong bảng phân vùng băm". Và nếu nó được sử dụng để phân vùng băm thì nó phải có tính xác định, nếu không các phép nối phân vùng khôn ngoan sẽ không hoạt động.

Để hiển thị ORA_HASH đó có thể không xác định đối với một số kiểu dữ liệu, hãy chạy truy vấn bên dưới. Đó là từ một bình luận trong cùng một bài viết:

with src as (select to_clob('42') val from dual connect by level<=5)
select val,ora_hash(val,7) from src order by 2;

Đáng ngạc nhiên là vấn đề tương tự này cũng xảy ra với dbms_sqlhash.gethash .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. npm cài đặt oracledb xuất hiện lỗi:Không thể tìm thấy $ OCI_LIB_DIR / libclntsh.dylib

  2. Oracle + Oci8 + php5.6 + Ubuntu 16.04

  3. Lệnh odbc thích hợp để gọi thủ tục được lưu trữ trong Oracle với các tham số từ .Net là gì?

  4. Lỗi:Mã hóa ký tự không tương thích:UTF-8 và ASCII-8BIT

  5. Cách trả lại danh sách các lãnh thổ được hỗ trợ trong Oracle