Как получить вывод запроса в плоский файл с помощью Oracle в UNIX? Например: у меня есть таблица TEST; Я хочу получить содержимое таблицы TEST в плоский файл, а затем сохранить вывод в другой папке в формате .txt.
Получение вывода в плоском файле с использованием оракула в UNIX
Ответы:
См. Создание плоского файла в Руководство пользователя и справочник по SQL*Plus.
в терминале Oracle SQLplus вы можете ввести spool ; запустите буфер запросов;
Теперь он будет содержать результаты запроса.
На самом деле он будет содержать весь вывод на терминал с момента выполнения команды spool до отключения спулинга.
Если у вас есть доступ к каталогам на сервере базы данных и полномочия для создания объектов «Каталог» в Oracle, у вас есть множество вариантов.
Например, вы можете использовать пакет UTL_FILE (часть встроенных модулей PL/SQL) для чтения или записи файлов на уровне операционной системы.
Или используйте функциональность «внешней таблицы», чтобы определить объекты, которые выглядят как отдельные таблицы для Oracle, но на самом деле являются плоскими файлами на уровне ОС. Хорошо задокументировано в документации Oracle.
Кроме того, для разовых задач большинство инструментов для работы с SQL и PL/SQL предоставляют средства для перемещения данных в базу данных и из нее. В среде Windows Toad хорош в этом. Как и бесплатный SQLDeveloper от Oracle, который работает на многих платформах. Вы бы не хотели использовать их для процесса, который выполняется каждый день, но они подходят для отдельных ходов. Обычно я нахожу их более простыми в использовании, чем буферизацию SQL * Plus, но это примитивная версия той же функциональности.