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

Membuat sha1-hash dari baris di Oracle

Paket DBMS_CRYPTO adalah paket yang benar untuk menghasilkan hash. Itu tidak diberikan kepada PUBLIC secara default, Anda harus memberikannya secara khusus (GRANT EXECUTE ON SYS.DBMS_CRYPTO TO user1 ).

Hasil dari fungsi ini adalah tipe data RAW . Anda dapat menyimpannya di RAW kolom atau ubah menjadi VARCHAR2 menggunakan RAWTOHEX atau UTL_ENCODE.BASE64_ENCODE fungsi.

HASH fungsi kelebihan beban untuk menerima tiga tipe data sebagai input:RAW , CLOB dan BLOB . Karena aturan konversi implisit, jika Anda menggunakan VARCHAR2 sebagai input, Oracle akan mencoba mengubahnya menjadi RAW dan kemungkinan besar akan gagal karena konversi ini hanya berfungsi dengan string heksadesimal.

Jika Anda menggunakan VARCHAR2 kemudian, Anda perlu mengonversi input ke tipe data biner atau CLOB , misalnya :

DECLARE
   x RAW(20);
BEGIN
   SELECT sys.dbms_crypto.hash(utl_raw.cast_to_raw(col1||col2||to_char(col3)), 
                               sys.dbms_crypto.hash_sh1) 
     INTO x 
     FROM t;
END;

Anda akan menemukan informasi tambahan dalam dokumentasi DBMS_CRYPTO.hash



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana saya bisa mendapatkan nama kolom dari tabel di Oracle?

  2. Proses peningkatan langkah demi langkah untuk R12.2 Upgrade Bagian -1

  3. Tampilkan semua pertanyaan yang datang ke database Oracle

  4. JPA - EclipseLink - Cara mengubah skema default

  5. Prosedur tersimpan Oracle:mengembalikan set hasil dan parameter keluar