老师们,请教个问题,比对oracle库和其他数据库的表的数据一致性,比对字符型字段有什么好办法吗?数值型字段可以直接做sum比对
比如Oracle与greenplum,可以用Oracle数据库中函数standard(column,‘MD5’)计算列的md5值,使用greenplum中的md5函数计算greenplum字符型列的md5值。
整表的话,利用列转行函数,计算表整列md5值,然后与其他库使用同样方法计算md5值之后对比, 例如, Oracle使用listagg拼接所有列变成一整行,然后使用standard_hash计算md5:
select standard_hash(listagg(列名,''),'MD5') from {表名};
greenplum使用string_agg拼接,然后使用md5函数计算:
select md5(string_agg('列名')) from {表名};
其他库函数不太熟悉,一般都有类似函数哈,比对方法基本相同。