I want to generate a join that looks something like:
FROM Customer
LEFT OUTER JOIN Order on Customer.CustomerId = Order.CustomerId and Order.OrderDate > 1/1/2005
In Oracle 9i this translates to:
FROM Customer, Order
WHERE Customer.CustomerId = Order.CustomerId(+)
AND Order.OrderDate (+)> 1/1/2005
When I add the predicate expression for the date I get:
FROM Customer, Order
WHERE Customer.CustomerId = Order.CustomerId(+)
AND Order.OrderDate > 1/1/2005
which only returns me customers that have orders in 2005, rather than all customers, with 2005 order details.
My example is rather more complex than this (and obviously the date syntax is incorrect) but this is my essential problem. Is setting ObeyWeakRelations going to have any effect on the predicate expression, or does that only affect the relation joins? Is there some other solution for this problem?