Несколько вещей касаются меня по поводу вашего вопроса.
Во-первых, обычные пользователи, такие как SCOTT, не должны создавать каталоги. CREATE ANY DIRECTORY чрезвычайно мощен, потому что он предоставляет права на чтение / запись для любого каталога ОС, доступного для учетной записи oracle
; это огромная дыра в безопасности.
Во-вторых, путь к каталогу должен быть просто путем, без файла. Мы создаем файлы, используя UTL_FILE, Data Pump или что-то еще. Вызов UTL_FILE.FOPEN()
не удастся, если переданный DIRECTORY фактически является путем к файлу, а не каталогу ОС.
Я не могу объяснить, почему тот же оператор, успешно выполненный SYSTEM, завершается ошибкой при выполнении SCOTT. У меня нет 9i, поэтому я не могу его проверить. Вырежьте и вставьте весь вывод SQL * Plus, чтобы мы могли видеть, что происходит. Как заметил Питер, ваш вопрос, по-видимому, содержит опечатку, поэтому в настоящий момент мы не можем быть уверены, что то, что вы думаете, происходит на самом деле , это , что происходит.