ORA-25156: old style outer join (+) cannot be used with ANSI joins

文档解释

ORA-25156: old style outer join (+) cannot be used with ANSI joins

Cause: When a query block uses ANSI style joins, the old notation for specifying outer joins (+) cannot be used.

Action: Use ANSI style for specifying outer joins also.

ORA-25156消息给出的相关信息指出无法使用ANSI(美国国家标准学会)中指明的外连接方式(旧式外连接方式)。 因为在ANSI标准之后,ORACLE被要求在其SQL编程语言中实现更加统一的外连接操作,更完整的功能支持及更好的性能与健壮性等。

此错误码一般是由于在Oracle SQL语句中使用了旧式的外键方式,例如“表.列(+)”,而不是使用ANSI标准外键方式来进行操作导致的。因此,要解决此问题,可以使用ANSI标准的外键语句,例如:

SELECT a.column1, b.column2

FROM table1 a

LEFT JOIN table2 b

ON (a.column3 = b.column3);

此外,还可以使用Oracle提供的一些兼容功能支持ANSI标准外键操作,以解决此问题,请参考官方文档:

ALTER SESSION {SET syntax_obl_skg_hint = ‘enabled’ | disable} [;]

你可能感兴趣的