Создайте объект DIRECTORY
, соответствующий каталогу в файловой системе, где находится внешний источник данных.
CREATE OR REPLACE DIRECTORY emp_dir AS '/…/emp_dir'; GRANT READ ON DIRECTORY emp_dir TO hr; |
---|
Для создания объекта каталога для внешней таблицы используйте инструкцию CREATE DIRECTORY
. Объект каталога задает псевдоним каталога в файловой системе сервера, где находится внешний источник данных. При ссылке на внешний источник данных можно использовать имена каталогов вместо жестко заданного в программе имени пути операционной системы с целью обеспечения большей гибкости управления файлами.
Для создания каталогов необходимо иметь системные привилегии CREATE ANY DIRECTORY
. При создании каталога пользователю автоматически предоставляются объектные привилегии, и он может выдать привилегии READ
и WRITE
другим пользователям и ролям. Администратор базы данных также может предоставить эти привилегии другим пользователям и ролям.
Пользователю требуются привилегии READ
на все каталоги, используемые во внешних таблицах, к которым происходит обращение, и привилегии WRITE
для задействованных местоположений журнала, плохих и отвергнутых файлов.
Кроме того, привилегия WRITE
необходима в случае, когда для выгрузки данных используется структура внешней таблицы.
Oracle предоставляет также тип ORACLE_DATAPUMP
, с помощью которого можно выгрузить данные (т. е. прочитать данные из таблицы в базу данных и вставить их во внешнюю таблицу) и затем повторно загрузить их в базу данных Oracle. Это одноразовая операция, которая может быть выполнена при создании таблицы. После того как выполнено создание и заполнение начальными данными, какие либо строки невозможно обновить, вставить или удалить.
Синтаксис
CREATE
[OR REPLACE
] DIRECTORY AS
‘path_name’;
Элементы синтаксиса:
-
OR REPLACE
Укажите предложениеOR REPLACE
, чтобы повторно создать объект каталога базы данных, если он уже существует. Это предложение позволяет изменить определение существующего каталога без удаления, повторного создания и повторного предоставления объектных привилегий базы данных, которые были выданы ранее на каталог. Пользователи, получившие ранее привилегии на переопределенный каталог, могут продолжать обращаться к каталогу без необходимости повторного предоставления им привилегий. -
directory
Указывается имя создаваемого объекта каталога. Максимальная длина имени каталога равна 30 байтам. Объект каталога невозможно определить с помощью имени схемы. -
'path_name'
Указывается имя полного пути к каталогу операционной системы, к которому происходит обращение. Имя пути зависит от регистра.
Далее: Создание внешней таблицы