Můžete použít DBMS_SQLHASH.GETHASH
pro tohle. Výsledky dotazu musí být seřazené a nesmí obsahovat žádné LOB, jinak výsledky nebudou deterministické.
select dbms_sqlhash.gethash(q'[select * from some_table order by 1,2]', digest_type => 1)
from dual;
Kde digest_type 1 =HASH_MD4, 2 =HASH_MD5, 3 =HASH_SH1.
Tento balíček není ve výchozím nastavení nikomu udělen. Chcete-li jej použít, budete potřebovat někoho, kdo se přihlásí jako SYS a spustí toto:
SQL> grant execute on dbms_sqlhash to <your_user>;
Výsledky dotazu musí být seřazeny, jak je popsáno v "Chyba 17082212:DBMS_SQLHASH ODLIŠNÉ VÝSLEDKY Z JINÉ PŘÍSTUPOVÉ CESTY".
Nejsem si jistý, proč LOB nefungují, ale může to souviset se způsobem funkce ORA_HASH
nefunguje dobře s LOBy. Tento článek Jonathana Lewise obsahuje některé příklady ORA_HASH
vrací různé výsledky pro stejná data LOB. A nedávné verze SQL Language Reference varují, že ORA_HASH
nepodporuje LOB.