文档解释
ORA-39751: partitioned table on both sides of PARTITIONED OUTER JOIN is not supported
Cause: An attempt was made to partition both sides of PARTITIONED OUTER JOIN.
Action: Specify partitioned table on one side of PARTITIONED OUTER JOIN only.
Oracle无法将分区表用于 PARTITIONED OUTER JOIN ,会产生 ORA-39751 错误消息。官方解释说,在 PARTITIONED OUTER JOIN 中,Oracle必须处理来自两个不同的表的新的分区,而这是目前不可能的。
常见案例
例如:有两个分区表table1和table2,出现语句:
select *
from table1
LEFT OUTER JOIN table2
ON table1.column1=table2.column2
正常处理方法及步骤
可以重写上述语句,将其改为普通LEFT OUTER JOIN:
select *
from table1,table2
where table1.column1=table2.column2(+);
或者将其分解为两个查询:
select *
from table1
where table1.column1 in (
select table2.column2
from table2);
select *
from table2
where table2.column2 in (
select table1.column1
from table1);