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:
mon fichier est dans le repertoire /u01/oraclefiles:ORA-29280: invalid directory path
Process exited.
j'ai crée le repertoire en tant que user system:
voici ma procedure pl/sql:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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/
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?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 suis sous linux (fedora 8) et oracle 10g.
Au cas où se serait necessaire voici les droits sur le repertoire oraclefiles:
Merci d'avance pour votre aide.drwxr-xr-x 2 oracle oinstall 4096 2008-03-22 19:59 oraclefiles
Partager