ORA-39751: partitioned table on both sides of PARTITIONED OUTER JOIN is not supported

文档解释

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);

你可能感兴趣的