Oracle
 sql >> база данни >  >> RDS >> Oracle

Как да използвате ora_hash в колона с тип данни xmltype

Както вече знаете, ora_hash не приема long или LOB стойности. Можете да предадете първите 4k или 32k от XML съдържанието, но ако трябва да се уверите, че целият XML документ не се е променил, това няма да е достатъчно. И както Бен спомена, ora_hash има максимум 4294967295 кофи, така че сблъсъците са доста по-вероятни, отколкото при SHA-1 или MD5. Както се казва в документацията, ora_hash „е полезен за операции като анализиране на подмножество от данни и генериране на произволна извадка“.

Можете да използвате dbms_crypto пакет за хеширане на цялата стойност на XMLType, като CLOB, извлечен с getClobVal функция, с функция за обвивка, за да се улесни използването му:

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;
/

След това можете да подадете своя XMLType, като стойност или като колона като част от избор:

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. Oracle SELECT ТОП 10 записа

  2. Разделете IPv4 адреса на 4 числа в Oracle sql

  3. Извикване на запаметена процедура на Oracle с изходен параметър от SQL Server

  4. UNPIVOT върху неопределен брой колони

  5. 2 начина за свързване на низ и число в Oracle