通过 PL/SQL 更新 Oracle 中的联系人电子邮件和电话HZ_CONTACT_POINTS


是否可以

使用类似于下面的更新查询手动更新驻留在HZ_CONTACT_POINTS中的联系人的 PL/SQL 过程中的EMAIL_ADDRESS或PHONE_NUMBER列?

UPDATE hz_contact_points SET phone_number = P_PHONE_NUMBER WHERE owner_table_id = p_party_id AND owner_table_name = 'HZ_PARTIES' and primary_flag = 'Y' AND status = 'A' AND UPPER(contact_point_type) = 'PHONE';

UPDATE hz_contact_points SET email_address = P_EMAIL_ADDRESS WHERE owner_table_id = p_party_id AND owner_table_name = 'HZ_PARTIES' AND PRIMARY_FLAG = 'Y' AND STATUS = 'A' AND UPPER(CONTACT_POINT_TYPE) = 'EMAIL';

还是必须使用 API 调用:

HZ_CONTACT_POINT_V2PUB.update_phone_contact_point

HZ_CONTACT_POINT_V2PUB.update_email_contact_point

HZ_CONTACT_POINT_V2PUB是TCA接口的一部分。 引用 TCA 文档:

"Oracle 交易社区架构 (TCA) 是一种数据模型, 允许您管理有关各方的复杂信息,或 属于您的商业社区的客户,包括 组织、位置和分层网络 他们之间的关系。

特别是,该复杂信息包括版本历史记录。 这就是 Oracle 应用 API 的作用:执行实际的 DML,并协调伴随的更改(依赖项、版本控制、审计等),以确保该数据模型的一致性

如果您使用 SQL 并手动更新属性,则不会执行任何操作。

那么,这是"可以"吗? 也许你会侥幸逃脱,不会破坏任何东西。 或者,您的组织可能不关心版本历史记录。 但他们花了很多钱授权Oracle Apps。 所以我的建议是使用 API,即使对于这样一个微不足道的操作来说似乎有点矫枉过正。 因为如果你养成了绕过API的习惯,你最终会破坏数据模型,然后Oracle支持部门会问一些非常棘手的问题。

相关内容

最新更新