Per RPRO’s dev team:
By default we do not imply any specific sorting order in customers, and Oracle has tendency of sorting by the order it FOUND customers in the database. But final sorting order depends on many factors.
1) Small database – it’s possible that it’s faster to get customers by performing full table scan, in which case the order will be natural (or reversed) order of them been added to the database (keep in mind that ECM skews this logic since it introduces customers in bulk and you can’t be sure of the order anymore).
2) Larger database – it’s possible that it’s faster to get customers by performing index scan, in which case customers will appear sorted by that particular index (it has no correlation to UI fields – e.g. sorting by customer SID or by some date, after all we have quite a few indexes and Oracle is free to pick any one of those, it’s especially true when some filtering is applied, and we always have filters – for example subsidiary and active/inactive).
3) In some cases Oracle can decide that it’s possible to get records faster by looking at other tables first (e.g. subsidiary) and then for each record perform smaller queries to customers and later mix them together) – in this case you will end up with chunks of customer records been sorted one way, and the records inside of those chunks been sorted another way.
In short, we do not guarantee any order, because the fastest way for Oracle to deliver requested data is to leave it to decide about the order on its own, and it totally depends on which query execution plan Oracle optimizer will consider most efficient. It can even change from time to time depending on how much data you accumulate and what statistical information Oracle collected about that data during database tuning.