This query:
select *
from table_a
, table_b
where table_a.id = table_b.id(+)
and table_b.name = 'BENEFICIARY'
returns me no records. table_b has no records with name=’BENEFICIARY’. But the outer join should return all records from table_a regardless . No?
The below query returns records from table_a as expected:
select *
from table_a
, (select *
from table_b
where table_b.name = 'BENEFICIARY') AS table_b1
where table_a.id = table_b1.id(+)
Why is the first query not returning records?
In the first query, the filter is being applied to the results, after the join.
Try