この例には、2つの異なるテーブルに同じテーブルエイリアスが使用されています。これがOracleによって許可されている理由、および許可されている場合、結果がどのように意味を成すかはわかりません。
create table Table_A (x number);
create table Table_B (x number);
insert into Table_A values (1);
insert into Table_A values (2);
insert into Table_B values (2);
insert into Table_B values (3);
select * from Table_A ;
X
----------
1
2
2 rows selected.
select * from Table_B ;
X
----------
2
3
2 rows selected.
select *
from Table_A T
join Table_B T
on T.x = T.x;
X X
---------- ----------
2 2
2 2
3 3
3 3
4 rows selected.
Bug 25342699:ANSI JOINの使用と同一のテーブルエイリアスによる誤った結果
バグは「まだ作業中」です。
回避策は明白です。異なるエイリアスを使用してください。
ANSI以外の結合では、期待どおりにエラーがスローされます。
18.1と18.2でも修正されるようです。