定義一個數據塊的校驗值是否有使用,我可以得到的東西像SQL(Oracle)的任一方法:甲骨文獲得由SELECT子句
select checksum(select * from table) from table;
定義一個數據塊的校驗值是否有使用,我可以得到的東西像SQL(Oracle)的任一方法:甲骨文獲得由SELECT子句
select checksum(select * from table) from table;
您可以使用DBMS_SQLHASH.GETHASH
這一點。查詢結果必須是有序的,並且不得包含任何LOB,否則結果將不確定。
select dbms_sqlhash.gethash(q'[select * from some_table order by 1,2]', digest_type => 1)
from dual;
其中digest_type 1 = HASH_MD4,2 = HASH_MD5,3 = HASH_SH1。
該軟件包默認情況下不授予任何人。要使用它,你需要有人登錄爲SYS並運行:
SQL> grant execute on dbms_sqlhash to <your_user>;
感謝您的回答!任何方法沒有安裝DBMS_SQLHASH? –
它已經安裝,你只需要授予它的訪問權限。無論您選擇哪種選項,您都可能需要運行一些贈款。即使像DBMS_CRYPTO這樣的軟件包通常也不會向公衆授予。 –
你可以試試ORA_HASH。 https://docs.oracle.com/cd/B28359_01/server.111/b28286/functions112.htm#SQLRF06313,以及:http://phil-sqltips.blogspot.ca/2014/05/oracle-table-or -query-checksum-function.html – Klinger