I use stored outlines a lot on 8i and 9i, to coax a "wonderful" 3rd party application into using better explain plans on specifc sqls.

On 8i at least, I have to manually update the ol$hints table, swapping the plans for the bad application sql with the better hint sql.

I'm now running into queries that I can't directly affect with hints, unless I reorder the tables in the from clause. What I'm wanting to try is:
select .... from detailtable a, headertable b
where a.lesserkey=:1
and a.realkey = b.realkey
and b.realkey = :2;
To be swapped with the outline for:
select /*+ use_nl(headertable) ordered index(headertable,realkeyidx) */...
from headertable b, detailtable a
....
so that the headertable drives the loop. I haven't tried this yet, swapping plans for two slightly different sqls. I'm going to test this out, but does anyone have any thoughts or experience with doing this?