Oracle 11g和PostgreSQL 9.2.4中查询结果集的md5哈希

Oracle 11g和PostgreSQL 9.2.4中查询结果集的md5哈希,sql,oracle11g,md5,postgresql-9.2,data-comparison,Sql,Oracle11g,Md5,Postgresql 9.2,Data Comparison,我在Oracle 11g数据库和PostgreSQL 9.2.4数据库中有相同的TPCH 100 GB数据。我想对一些查询的结果集使用md5哈希检查这两个数据库实例之间的数据一致性。 例如,在Oracle中,我有以下几点: SQL> select dbms_sqlhash.gethash('select P_PARTKEY from tpch.part order by P_PARTKEY', 2) from dual; DBMS_SQLHASH.GETHASH('SELECTP_PAR

我在Oracle 11g数据库和PostgreSQL 9.2.4数据库中有相同的TPCH 100 GB数据。我想对一些查询的结果集使用md5哈希检查这两个数据库实例之间的数据一致性。 例如,在Oracle中,我有以下几点:

SQL> select dbms_sqlhash.gethash('select P_PARTKEY from tpch.part order by P_PARTKEY', 2) from dual;

DBMS_SQLHASH.GETHASH('SELECTP_PARTKEYFROMTPCH.PART',2)
--------------------------------------------------------------------------------
FCD3107B07440D1A7161753CCB01AEA8

Elapsed: 00:04:53.43
在Postgres中,从同一结果集中获取相同哈希的查询是什么? 我尝试了以下操作,获得了不同的哈希值:

postgres=# select md5(string_agg(part.P_PARTKEY::text,'' order by part.P_PARTKEY)) from tpch.part;
               md5
----------------------------------
 9aef6c00d25f68510780ac37c775aedd
(1 row)

Time: 71537.872 ms
postgres=# select md5(array(select P_PARTKEY from tpch.part order by P_PARTKEY)::text);
               md5
----------------------------------
 366acef03d0c8e5488839da04d5e4515
(1 row)

Time: 58363.788 ms
我不知道dbms_sqlhash.gethash函数的内部结构,因此不确定string_agg或array函数在Postgres中是否以与Oracle中相同的方式组合行哈希。请帮忙