This was a critical issue for us for which we raised a bug and was working with Development to resolve. An initial work around was to create a very poorly designed primary key which go the sorting *closer* to what was desired, but it still was not a good fit.
Off the cuff they suggested building a view of the table with the desired ORDER BY in the view definition. A little bit of tweaking and we were eventually able to get this to work. We ended up doing (SQL, not sure if Oracle allows order by in view definitions):
SELECT TOP 99.9999999 PERCENT * FROM table ORDER BY sort1, sort2, sort3
Note that SQL will ignore the order by of TOP 100 PERCENT is used, hence the all 9s (billions is more than enough for our needs at this time). Its a bit of a hack, but it works and gets around the bad primary key I had created trying to approximate the fix.