«Я указал путь для локального клиентского компьютера»
PL / SQL работает на сервере базы данных и может видеть только те каталоги, которые видны из этого поля.Обычно это просто каталоги, локальные для сервера , если только у вас не подключены сетевые диски.Поэтому, если вы не используете локальный компьютерный диск на сервере базы данных, PL / SQL не сможет получить доступ к вашим файлам.
Имейте в виду, что права доступа к каталогам также применимы;база данных может считывать и записывать в каталоги только в том случае, если пользователь ОС oracle
или группа dba
(или эквиваленты Windows) могут их читать и записывать. Подробнее .
Обратите внимание, что пользовательские привилегии ОС просто образуют пул потенциально доступных каталогов.По умолчанию база данных не имеет доступа ни к каким каталогам ОС.
Когда впервые был представлен UTL_FILE (я думаю, Oracle 7), его доступные пути к каталогам определялись параметром UTL_FILE_DIR в файле init.ora
.Это было неудобно - нам пришлось перезапустить базу данных, чтобы применить изменения, а также небезопасно, поскольку доступ на чтение и запись был предоставлен глобально, для всех каталогов всем пользователям.
В Oracle 9i мы получилиКАТАЛОГ базы данных объекта.Это удобно, потому что мы можем создать или удалить DIRECTORY с прямым DDL, поэтому перезапуски не требуются.Более того, привилегии в DIRECTORY предоставляются именованным пользователям, и мы можем различать привилегии READ или WRITE.
Но в обоих случаях мы должны использовать абсолютные пути к файлам.Нет относительных путей, нет подстановочных знаков.
Синтаксис описан в онлайн-документации Oracle. Узнайте больше .
«как я могу получить доступ к файлам на моем локальном клиентском компьютере?»
Одним из решений является разделение вашего локального диска с сетью.Это редко желательно.
Более практичное решение - переместить файлы с локального диска на сервер базы данных, используя что-то вроде ftp
.Как вы реализуете это зависит от деталей вашей ситуации.Если это специальное требование, тогда будет достаточно командной строки ftp
или старого доброго WinSCP.Если это то, что вам нужно для обычных пользователей, то вы, вероятно, захотите встроить функциональность в свое приложение.