с UTL_FILE замучился

OldNov
Дата: 14.11.2008 10:37:24
Колеги, совсем замучился. Подскажите, куда смотреть. Экспортирую данные в файл.

CREATE OR REPLACE DIRECTORY mydir AS 'C:\1\1';
GRANT read, write ON DIRECTORY mydir TO PUBLIC;
SELECT * FROM ALL_DIRECTORIES;

Все прекрасно, папка видна. Далее скрипт

DECLARE

strText VARCHAR2(32000);
objFileHandler utl_file.file_type;
strFolder VARCHAR2(100);
strFileName VARCHAR2(100);

BEGIN

strFolder := 'mydir'; -- 'C:\1\1'; -- 'C:\Oracle\admin\orcl\dpdump';
strFileName := 'expdata.txt';
objFileHandler := utl_file.fopen_nchar(strFolder,strFileName,'w', 32000);

--utl_file.putf(filehandler1,x1);
--strText := 'qwerty';
--utl_file.putf(objFileHandler,strText);

utl_file.fclose(objFileHandler);

END;

fopen_nchar и просто fopen выпадает с ошибкой ORA-29280 invalid directory path. Как можно сделать более детальную диагностику. Сервер работает на standalone w2k3 сервере, я на нем админ и работаю с административными привилегиями.

Спасибо.
Вячеслав Любомудров
Дата: 14.11.2008 10:40:03
OldNov
SELECT * FROM ALL_DIRECTORIES;

Все прекрасно, папка видна. Далее скрипт
....
strFolder := 'mydir'; -- 'C:\1\1'; -- 'C:\Oracle\admin\orcl\dpdump';
Имена не пробовал сравнить?
OldNov
Дата: 14.11.2008 10:41:27
Прошу прощения, не уловилю Чьи имена?
ERROR MESSAGE
Дата: 14.11.2008 10:41:28
OldNov
Колеги, совсем замучился. Подскажите, куда смотреть. Экспортирую данные в файл.

CREATE OR REPLACE DIRECTORY mydir AS 'C:\1\1';
GRANT read, write ON DIRECTORY mydir TO PUBLIC;
SELECT * FROM ALL_DIRECTORIES;
Все прекрасно, папка видна. Далее скрипт

DECLARE

  strText                         VARCHAR2(32000);
  objFileHandler                  utl_file.file_type; 
  strFolder                       VARCHAR2(100);
  strFileName                     VARCHAR2(100);

BEGIN

    strFolder := 'mydir'; -- 'C:\1\1'; -- 'C:\Oracle\admin\orcl\dpdump';
    strFileName := 'expdata.txt';
    objFileHandler := utl_file.fopen_nchar(strFolder,strFileName,'w', 32000); 

    --utl_file.putf(filehandler1,x1); 
    --strText := 'qwerty';
    --utl_file.putf(objFileHandler,strText); 

    utl_file.fclose(objFileHandler); 

END;
fopen_nchar и просто fopen выпадает с ошибкой ORA-29280 invalid directory path. Как можно сделать более детальную диагностику. Сервер работает на standalone w2k3 сервере, я на нем админ и работаю с административными привилегиями.

Спасибо.

При оформлении кода используйте, пожалуйста, тег SRC данного форума.
Этим вы повысите свои шансы на получение ответа.
Elic
Дата: 14.11.2008 10:42:19
OldNov
CREATE OR REPLACE DIRECTORY mydir AS 'C:\1\1';
strFolder := 'mydir'; -- 'C:\1\1'; -- 'C:\Oracle\admin\orcl\dpdump';
utl_file.fopen_nchar(strFolder
Намёк: mydir - это идентификатор.
OldNov
Дата: 14.11.2008 10:44:25
Намек понятен, но я уже все перепробовал, как вы видите - и полный путь, и относительный, и идентификатор. Такой вариант я нашел в одном из англоязычных блогов, тоже попробовал, но безрезультатно.
Legi
Дата: 14.11.2008 10:55:17
проверте есть ли у пользователя, под которым зашали в ОС, права записи туда и включён ли он в группу ODBA
Elic
Дата: 14.11.2008 10:55:41
OldNov
Намек понятен
Вряд ли :)
RTFM Schema Object Naming Rules (FAQ)
spb_kostya
Дата: 14.11.2008 10:55:54
вообще-то utl_file.fopen - функция, которая создает файл на серваке, а не локально.
следовательно и пути надо писать в нотации сервака. (у нас unix - пути пишем примерно так /u1/oracle/DIR1/subDIR2 )
смотрите в этом направлении
Elic
Дата: 14.11.2008 10:58:58
spb_kostya
следовательно и пути надо писать в нотации сервака.
OldNov
Сервер работает на standalone w2k3 сервере