Чтение / запись данных из / в файл в PL / SQL без использования UTL_FILE - PullRequest
1 голос
/ 26 марта 2009

Возможно ли чтение / запись данных из / в файл в блоке PL / SQL без использования пакета UTL_FILE в Oracle 10g?

В настоящее время у меня есть файл, содержащий набор первичных ключей (около 28000), которые мне нужны для запроса таблицы для дополнительных данных, которые необходимо записать в файл. Схема, которую я использую, очень ограничена и не имеет никаких прав на создание. Кроме того, нет никаких каталогов, настроенных с необходимыми привилегиями чтения / записи для процедур в UTL_FILE, чтобы работать должным образом. Требование DBA предоставить дополнительные привилегии займет слишком много времени.

Есть ли способ обойти эту проблему?

Заранее спасибо.

[Редактировать] Я не могу загрузить данные в таблицу. Нет таблицы для загрузки или привилегий для ее создания. Я думаю, что это самая сложная часть проблемы. Как выполнить запрос к базе данных, если критерии для запроса не могут быть частью самого запроса (т. Е. В отдельном файле)? Если количество первичных ключей невелико, я могу сгенерировать несколько операторов select для извлечения данных в sqlplus (с использованием очереди), но 28000 кажется слишком большим.

Ответы [ 2 ]

2 голосов
/ 26 марта 2009

Если вы не можете настроить каталоги, я бы сказал, что вам не повезло. Вы просите прочитать и создать файлы на сервере базы данных. Об этом должен знать ваш администратор базы данных.

Вы уверены, что вам нужны файлы на сервере? Можете ли вы загрузить файл из клиента в таблицу (используя обычные инструменты на стороне клиента) и читать / записывать данные оттуда?

Обновление:

Я не могу загрузить данные в таблицу. Нет таблицы для загрузки или привилегий для ее создания. Если количество первичных ключей невелико, я могу сгенерировать несколько операторов select для извлечения данных в sqlplus (с использованием очереди), но 28000 кажется слишком большим.

28000 не так много. Цикл на стороне клиента.

0 голосов
/ 26 марта 2009
  1. Возможно, вы сможете использовать пакет UTL_TPC для записи на FTP-сервер с использованием пакетов TCP.
  2. Было бы лучше загрузить первичные ключи в таблицу перед запуском пакета, чтобы позволить pl / sql выполнять чтение / запись в таблицу первичных ключей.
  3. Напишите гигантскую программу pl / sql с ключами 20000 в качестве операторов вставки для построения таблицы в памяти и используйте ее для запроса / и т. Д. Затем используйте sqlplus для буферизации результатов. или почтовый пакет для отправки результатов по электронной почте.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...