Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
Теоретические аспекты и практические реализации создания, внедрения и использования баз данных, СУБД, хранилищ.
  • Страница:
  • 1
  • 2

ТЕМА:

Utl_file и поддиректории в Oracle 12 года 9 мес. назад #1479

Привет всем))
Есть такая у мня задачка, в общем создала директорию:
CREATE OR REPLACE DIRECTORY HOME_DIR AS '/home/oracle/lib';
    GRANT READ ON DIRECTORY HOME_DIR TO APPS;
    ALTER SYSTEM SET UTL_FILE_DIR = '/home/oracle/lib'

Используя in_file := utl_file.fopen('HOME_DIR','test.pl', 'r'); все норм открывается, читается, вобщем работает как надо.

Вопрос в следующем: в директории /home/oracle/lib пользователями создаются новые поддиректории в которых размещаются txt файлы, причем это постоянно движется, поддиректории удаляются, создаются новые и каждую зарегестрровать как DIRECTORY невозможно. Как можно получить из PL/SQL доступ к этим файликам для чтения. Полные пути с именами файлов я подгружаю в базу скриптом, а вот доступ к содержимому надо сделать только средствами БД. Подскажите, как это сделать, при помощи Utl_file либо может как-то еще.

Пока сделала так: курсором бегу по записям с файлами и перед операцией над каждым пере создаю директорию:
open c;
       loop
        fetch c into line;
       exit when c%notfound;
    execute immediate 'CREATE OR REPLACE DIRECTORY TMP_DIR AS '''||line.path||'''';
    --тут читаю содержимое
    end loop;
    close c;

На тестовом наборе данных работает норм, но хотелось бы узнать, никакими проблемами такой подход не чреват?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от Bella.

Re: Utl_file и поддиректории в Oracle 12 года 9 мес. назад #1480

Немного покопался в мануале..
Directories do not allow subdirectory traversal. That means that you need to create Oracle directories for all directories and subdirectories you need to access.

Поэтому скорее всего придется создавать объекты directory для каждой поддиректории.
Может быть стоит совсем пересмотреть структуру сервиса/приложения?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Utl_file и поддиректории в Oracle 12 года 9 мес. назад #1481

Добрый день!
А ответьте мне на такой вопрос... Почему вы не используете LOB'ы? Используете ли ХЕ ?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Utl_file и поддиректории в Oracle 12 года 9 мес. назад #1482

Может быть стоит совсем пересмотреть структуру сервиса/приложения


Мне дали задание, надо только реализовать.

Вообще надо периодически сканировать структуру директорий (в итоге должно получаеться что-то вроде каталога с вложенными подкатегориями), а уже внутри подкатегорий находятся файлы с данными, их мне и надо каталогизировать.

XE использую.
Если честно, то никогда не приходилось использовать LOB'ы. И не знаю как это поможет в моей проблеме?

Есть текстовый файл, он содержит некоторую структуру-описание, которую надо разобрать и раскидать по полям таблиц.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Utl_file и поддиректории в Oracle 12 года 9 мес. назад #1483

Считаю, что в случае с ХЕ - никак. Там ограничение на объем 4 Гб. Может конечно вам и хватит, а может и не хватить... Просто может быть писать данные не в файлы а сразу в БД (если вообще такая возможность есть) ?

Кто и как создает этот текстовый файл ?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Utl_file и поддиректории в Oracle 12 года 9 мес. назад #1484

Слушай, а если сам разбор файла и работу с директориями вынести в java хранимую процедуру? Тогда тебе и не понадобятся Oracle Directory. Логично?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

  • Страница:
  • 1
  • 2
Время создания страницы: 0.231 секунд