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

ТЕМА: Utl_file и поддиректории в Oracle

Utl_file и поддиректории в Oracle 09 июль 2011 10:43 #1479

  • Bella
  • Bella аватар Автор темы
  • Не в сети
  • Новый участник
  • Новый участник
  • Сообщений: 47
  • Спасибо получено: 0
Привет всем))
Есть такая у мня задачка, в общем создала директорию:
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 09 июль 2011 10:48 #1480

  • Lex
  • Lex аватар
  • Не в сети
  • Новый участник
  • Новый участник
  • Сообщений: 46
  • Спасибо получено: 1
Немного покопался в мануале..
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 09 июль 2011 10:50 #1481

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

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

Re: Utl_file и поддиректории в Oracle 09 июль 2011 10:54 #1482

  • Bella
  • Bella аватар Автор темы
  • Не в сети
  • Новый участник
  • Новый участник
  • Сообщений: 47
  • Спасибо получено: 0

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


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

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

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

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

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

Re: Utl_file и поддиректории в Oracle 09 июль 2011 10:56 #1483

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

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

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

Re: Utl_file и поддиректории в Oracle 09 июль 2011 10:57 #1484

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

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

  • Страница:
  • 1
  • 2