微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在Postgres中替换Oracle的ORA_HASH函数?

如何解决如何在Postgres中替换Oracle的ORA_HASH函数?

如何在 Postgres 中替换Oracle的 ORA_HASH 功能?我希望实现已写入Oracle的Batch和merge逻辑,同样希望实现到Postgres。

SELECT disTINCT ACCNT_TYPE,ACCNT_SUB_TYPE,ACCNT_FROM_VAL,ACCNT_TO_VAL AS T_ACCNT_TO_VAL,ORA_HASH("NAME"||TO_CHAR(LIFECYCLE_DATE,'DD-MM-YYYY HH24:MI:SS')||LEGACY_ICA_TYPE||TO_CHAR(PURGE_DATE,'DD-MM-YYYY HH24:MI:SS')
||HUB_STATE_IND||LIFECYCLE_STATUS_CD||VAT_ID||LICENSED_SW||PRIMARY_ICA||TOKEN_ACCT_SRV_DESC) AS HASH_VAL
FROM C_ACCNT

ORA_HASH中提到的所有字段用于评估是否应该执行INSERT。UPSERT应该通过考虑所有这些字段来完成。

几乎相同的查询,但表名称在进行左外部联接时有所不同。同样,如果哈希值不同,则将其用于UPSERT。

为什么这个查询总是给我空响应?

select md5(p.src_id || p.type || p.accountName) 
FROM ACCOUNT p;

如果类型值为NULL,则DB为md5,结果为NULL。不好。

解决方法

如果您只需要一个字符串的哈希函数,请使用PostgreSQL内置的hashtext

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。