because pl/sql will let you have numerous out variables (including cursors), its actually fairly easy to use an out cursor to return arbitrary result sets. how well an app can utilize this depends on they're bindings to oracle.