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

Cara menggunakan ora_hash pada kolom tipe data xmltype

Seperti yang sudah Anda ketahui, ora_hash tidak menerima long atau nilai LOB. Anda dapat meneruskan 4k atau 32k pertama dari konten XML, tetapi jika Anda perlu memastikan bahwa seluruh dokumen XML tidak berubah, itu tidak akan cukup. Dan seperti yang Ben sebutkan, ora_hash memiliki maksimum 4294967295 bucket, jadi kemungkinan tabrakan lebih besar dibandingkan dengan SHA-1 atau MD5. Seperti yang dikatakan dokumentasi, ora_hash 'berguna untuk operasi seperti menganalisis subset data dan menghasilkan sampel acak'.

Anda dapat menggunakan dbms_crypto paket untuk hash seluruh nilai XMLType, sebagai CLOB yang diekstraksi dengan getClobVal function, dengan fungsi wrapper agar lebih mudah digunakan:

create or replace function my_hash(xml xmltype) return raw is
begin
  return dbms_crypto.hash(src=>xml.getclobval(), typ=>dbms_crypto.hash_sh1);
end;
/

Anda kemudian dapat meneruskan XMLType Anda, sebagai nilai atau sebagai kolom sebagai bagian dari pilihan:

select my_hash(xml) from t42;

MY_HASH(XML)                                 
---------------------------------------------
494C4E7688963BCF312B709B33CD1B5CCA7C0289     



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Entitas Oracle dalam kerangka entitas VS tidak memperbarui kunci utama dalam kode

  2. Apakah kebuntuan mungkin terjadi saat memperbarui dan menghapus baris yang berbeda dalam sebuah tabel?

  3. Cara menggunakan Oracle Associative Array dalam kueri SQL

  4. Cara Memilih dan Memesan Berdasarkan kolom tidak dalam pernyataan Groupy By SQL - Oracle

  5. Cara mendeklarasikan dan menampilkan variabel di Oracle