UTL_FILE: invalid file operation
Bonjour,
J'essaye de lire un fichier cvs dans une procedure pl/sql mais je n'y arrive pas. J'ai le message d'erreur suivant:
Citation:
ORA-29280: invalid directory path
Process exited.
mon fichier est dans le repertoire /u01/oraclefiles:
j'ai crée le repertoire en tant que user system:
Code:
1 2 3 4 5 6 7 8
| SQL> create or replace directory oraclefiles as '/u01/oraclefiles';
Directory created.
SQL> grant read on directory oraclefiles to public;
Grant succeeded.
SQL> select directory_name, directory_path from dba_directories;
ADMIN_DIR /ade/aime_10.2_lnx_push/oracle/md/admin
ORACLEFILES /u01/oraclefiles
DATA_PUMP_DIR /u01/app/oracle/product/10.2.0/db_10g/rdbms/log/ |
voici ma procedure pl/sql:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| create or replace
PROCEDURE P_TRAIT_FICH_NOTES AS
/*déclaration des variables*/
nomfichier varchar2(256) := 'tablenotes.cvs';
repertoire varchar2(256) := 'oraclefiles';
pfichier UTL_FILE.FILE_TYPE;
lignelue varchar2(32767);
BEGIN
BEGIN
-- ouverture du fichier
pfichier := UTL_FILE.FOPEN(repertoire, nomfichier, 'R', 32767);
-- lecture de la première ligne du fichier
--UTL_FILE.GET_LINE(pfichier, lignelue);
--dbms_output.put_line(lignelue);
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line(SQLERRM);
UTL_FILE.FCLOSE(pfichier);
END;
END P_TRAIT_FICH_NOTES; |
Je rappelle que j'ai d'abord crée le repertoire manuellement avant de lancer create directory, est ce la commande create directory qui doit créer le repertoire?
Je suis sous linux (fedora 8) et oracle 10g.
Au cas où se serait necessaire voici les droits sur le repertoire oraclefiles:
Citation:
drwxr-xr-x 2 oracle oinstall 4096 2008-03-22 19:59 oraclefiles
Merci d'avance pour votre aide.