Sie können DBMS_SQLHASH.GETHASH
verwenden dafür. Die Abfrageergebnisse müssen geordnet sein und dürfen keine LOBs enthalten, sonst sind die Ergebnisse nicht deterministisch.
select dbms_sqlhash.gethash(q'[select * from some_table order by 1,2]', digest_type => 1)
from dual;
Wobei digest_type 1 =HASH_MD4, 2 =HASH_MD5, 3 =HASH_SH1.
Dieses Paket wird standardmäßig niemandem gewährt. Um es zu verwenden, brauchen Sie jemanden, der sich als SYS anmeldet und Folgendes ausführt:
SQL> grant execute on dbms_sqlhash to <your_user>;
Die Abfrageergebnisse müssen sortiert werden, wie in "Bug 17082212:DBMS_SQLHASH DIFFERENT RESULTS FROM DIFFERENT ACCESS PATH" beschrieben.
Ich bin mir nicht sicher, warum LOBs nicht funktionieren, aber es könnte mit der Art und Weise zusammenhängen, wie die Funktion ORA_HASH
funktioniert funktioniert nicht gut mit LOBs. Dieser Artikel von Jonathan Lewis enthält einige Beispiele für ORA_HASH
Rückgabe unterschiedlicher Ergebnisse für dieselben LOB-Daten. Und neuere Versionen der SQL Language Reference warnen, dass ORA_HASH
unterstützt keine LOBs.