2015-03-21 1 views

ответ

1

Звучит как Oracle external directory идеально подходит для работы. Имейте в виду, что этот подход чреват трудностями, если это текстовый файл, на который пользователи могут писать. Пользователи сделают сотню вещей, которые вы никогда не считали возможными, что приведет к ошибкам и more.

Из статьи:

Создайте каталог

грант на чтение, запись на каталог data_dir в ваш_пользователь;

Создать внешнюю таблицу

CREATE TABLE test_ext (
    test_code  VARCHAR2(5), 
    test_name  VARCHAR2(50) 
) 
ORGANIZATION EXTERNAL (
    TYPE ORACLE_LOADER 
    DEFAULT DIRECTORY ext_tab_data 
    ACCESS PARAMETERS (
    RECORDS DELIMITED BY NEWLINE 
    FIELDS TERMINATED BY ',' 
    MISSING FIELD VALUES ARE NULL 
    (
     test_code  CHAR(5), 
     test_name  CHAR(50) 
    ) 
) 
    LOCATION ('test1.txt','test2.txt') 
) 
PARALLEL 5 
REJECT LIMIT UNLIMITED; 

, а затем считываются из таблицы

SELECT * 
    FROM test_ext 
    ORDER BY test_name; 

Edit: вы можете сделать это с помощью каталогов, которые не находятся на сервере базы данных, но требуется больше работы и это представляет собой еще больший риск для безопасности базы данных и качества данных. Этот подход не масштабируется. Вы собираетесь добавлять новый каталог каждый раз при добавлении нового пользователя?

шагов, чтобы позволить Oracle для доступа к файлам, расположенным на другую машину (предполагается, что операционная система Windows)

  • создать окно или пользователь домена, которые будут иметь прав на чтение файлов на каждом каталоге, который вы хотите получить доступ к
  • на сервере базы данных запустите services.msc и измените пользователя, что служба базы данных Oracle работает с вашим новым пользователем домена. Добавить пользователя в локальную группу под названием ORA_DBA на сервере базы данных
  • перезапустить базу данных для того, чтобы изменения вступили в силу
  • создать каталог в базе данных, используя этот путь // clientPc/общая_папка
  • разрешений
  • пособие для чтения в база данных пользователя
  • о предоставлении клиентской машины чтения для пользователя домена на этой папке
  • проверить подключение by using UTLFILE прочитать образец файл на клиентском компьютере
+0

Это работает бесшовным, когда пользователь имеет привилегию sys и текстовый файл находится на том же компьютере, что и сервер. Однако, как это будет работать, если текстовый файл находится на внешнем или на одном сервере, а пользователь вводит данные из обычного компьютера с входом в систему без sys-привилегий. следующая ошибка встречается: ORA-29913: ошибка при выполнении ODCIEXTTABLEOPEN выноски ORA-29400: Данные об ошибке картриджа КУП-04063: невозможно, чтобы открыть файл журнала ошибку ADMINS_26597.log OS Нет такого файла или каталога ORA-06512 : в строке «SYS.ORACLE_LOADER», строка 19 – ora

+0

Вам нужно добавить эти критерии к вашему вопросу. – kevinsky

+0

Я понимаю. Но вы можете помочь с этим. База данных oracle 10g устанавливается на машине linux 5.5, а скрипты sql запускаются с Toad на машине xp для создания таблицы.существуют ли какие-либо вещи, которые DBA должен делать при создании и предоставлении доступа и совместного использования каталога/папки – ora

Смежные вопросы