Tôi gặp sự cố khi tạo một băm sha1 của một hàng trong một lựa chọn trên cơ sở dữ liệu Oracle. Tôi đã thực hiện nó trong MSSQL như sau:Tạo một băm sha1 của một hàng trong Oracle
SELECT *,HASHBYTES('SHA1',CAST(ID as varchar(10)+
TextEntry1+TextEntry2+CAST(Timestamp as varchar(10)) as Hash
FROM dbo.ExampleTable
WHERE ID = [foo]
Tuy nhiên, tôi không thể tìm thấy chức năng tương tự để sử dụng khi làm việc với Oracle. Theo như googling của tôi đã mang lại cho tôi, tôi đoán dbms_crypto.hash_sh1 có một cái gì đó để làm với nó, nhưng tôi đã không thể quấn bộ não của tôi xung quanh nó ...
Bất kỳ con trỏ sẽ rất nhiều đánh giá cao.
Cảm ơn sự giúp đỡ. Tôi đã phải sử dụng giá trị dbms_crypto.hash_sh1 là viết tắt của (số nguyên 3) thay vì hằng số để làm cho nó hoạt động khi thực hiện một SQL thông thường. CHỌN sys.dbms_crypto.hash (utl_raw.cast_to_raw (col1), 3) TỪ t; – PrometheusDrake
Tôi không nghĩ rằng điều này là chính xác cho 11g R2. 'dbms_crypto.hash' dường như có 3 phiên bản quá tải cho' raw', 'blob' và' clob'. Giá trị 'varchar2' phải được chuyển đổi thành' raw' hoặc bằng 'utl_i18n.string_to_raw' hoặc' utl_raw.cast_to_raw'. Hoặc sử dụng 'clobs' cho dữ liệu ký tự. – user272735
Điều gì sẽ xảy ra nếu có một số cột không có loại dữ liệu chuỗi? – ca9163d9