【发布时间】:2011-09-15 19:08:03
【问题描述】:
我有一个应用程序使用 Oracle MERGE INTO... DML 语句来更新表 A 以对应另一个表 B 中的一些更改(表 A 是表 B 的选定部分的摘要以及其他一些信息)。在典型的合并操作中,可能会在表 B 中插入 5-6 行(成千上万行)并更新 2-3 行。
事实证明,应用程序将部署在对目标表具有安全策略的环境中。 MERGE INTO... 语句不能与这些表一起使用(ORA-28132:合并到语法不支持安全策略)
所以我们必须更改 MERGE INTO... 逻辑以使用常规插入和更新。这是其他人遇到的问题吗?是否有将合并语句中的 WHEN MATCHED/WHEN NOT MATCHED 逻辑转换为 INSERT 和 UPDATE 语句的最佳实践模式?合并是在存储过程中进行的,因此如果需要,除了 DML 之外,解决方案还可以使用 PL/SQL。
【问题讨论】:
标签: oracle dml security-policy