Во-первых, это фиксированный или произвольный запрос?Если это будет исправлено, вам будет легче.Произвольные запросы должны выполняться через dbms_sql, поэтому вы можете вернуть атрибуты столбца.Это грязно.
Во-вторых, имейте в виду, что форматирование SQL * Plus контролируется настройками клиента.Такие вещи, как длина строки, размер страницы, ширина столбца, заголовки и т. Д., Могут быть изменены от выполнения к выполнению.
При этом, если предположить, что это фиксированный запрос, тогда я бы:
- открыть курсор для запроса
- Если есть данные, выведите заголовки столбцов (включая строки '------')
- , проходите по курсору, печатаякаждое значение для записи в правильном формате
- закрыть курсор
Вы должны иметь возможность отформатировать вывод, изучив вывод из SQL * Plus и скопировав его.