Робота з об’єктом Directory у Oracle

У цій статті йтиметься про об'єкт directory.

Використання
  • Експорт/імпорт об'єктів бази даних за допомогою утиліт DataPump (expdp/impdp)
  • Робота з типом даних BFILE (великий зовнішній об'єкт, файл операційної системи)
  • Використання з UTL_FILE в PL/SQL-коді

Об'єкт Directory є логічним посиланням у базі даних каталог файлової системи сервера, де встановлена ​​БД Oracle. Власником усіх об'єктів Directory в базі даних є користувач SYS, навіть якщо об'єкт Directory створено іншим користувачем. Імена об'єктів Directory унікальні всередині всієї бази даних. Усі об'єкти Directory зберігаються у табличному просторі SYS.

Оскільки файли і каталоги насправді розташовуються поза базою даних, процеси СУБД Oracle повинні мати необхідні права доступу до зазначених каталогів файлової системи.

Створення об'єкта Directory:

де: dir_name - ім'я об'єкта Directory, що створюється;

path – фізичний шлях на файловій системі сервера БД;

опція OR REPLACE – використовується для того, щоб створити об'єкт Directory з ім'ям, яке вже існує у базі даних (перестворити об'єкт Directory).

УВАГА: як шлях path може бути використане ім'я неіснуючого каталогу операційної системи. СУБД Oracle не перевіряє наявність вказаного каталогу. У цьому випадку створення об'єкта Directory завершиться успішно, але при подальшому його використанні, наприклад з утилітою expdp, буде видана помилка (див. Пов'язані помилки).

Видалення об'єкта Directory
Безпека

Для того, щоб мати можливість створювати/видаляти об'єкти Directory, користувач повинен мати системні привілеї CREATE ANY DIRECTORY/DROP ANY DIRECTORY.

Побачити всі створені об'єкти Directoryбази даних можна за допомогою запиту: