Робота з об’єктом 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бази даних можна за допомогою запиту: