Você pode usar
DBMS_SQLHASH.GETHASH
por esta. Os resultados da consulta devem ser ordenados e não devem conter nenhum LOB, ou os resultados não serão determinísticos. select dbms_sqlhash.gethash(q'[select * from some_table order by 1,2]', digest_type => 1)
from dual;
Onde digest_type 1 =HASH_MD4, 2 =HASH_MD5, 3 =HASH_SH1.
Esse pacote não é concedido a ninguém por padrão. Para usá-lo, você precisará de alguém para fazer logon como SYS e executar isto:
SQL> grant execute on dbms_sqlhash to <your_user>;
Os resultados da consulta devem ser ordenados, conforme descrito em "Bug 17082212:DBMS_SQLHASH DIFFERENT RESULTS FROM DIFFERENT ACCESS PATH".
Não sei por que os LOBs não funcionam, mas pode estar relacionado à maneira como a função
ORA_HASH
não funciona bem com LOBs. Este artigo de Jonathan Lewis inclui alguns exemplos de ORA_HASH
retornando resultados diferentes para os mesmos dados LOB. E versões recentes do SQL Language Reference alertam que ORA_HASH
não suporta LOBs.