PL/SQL lecture/ecriture fichier txt
Bonjour à tous,
Je sèche depuis un moment sur un problème particulier en pl/sql. Je souhaite ouvrir un fichier en (lecture/écriture). J'ai cherché sur le web et j'ai trouvé le paquetage UTL_FILE.
(http://sheikyerbouti.developpez.com/...e=Chap8#L8.2.5)
J'ai créé un DIRECTORY et ai attribué les droits :
Code:
1 2 3 4 5
|
SQL> CREATE OR REPLACE DIRECTORY MONREP AS 'E:/SQL/in' ;
Repertoire créé.
SQL> GRANT READ, WRITE ON DIRECTORY MONREP TO PUBLIC ;
Autorisation de privilèges (GRANT) acceptée. |
Jusque là tout va bien.
Je lance ensuite mon block PL/SQL pour créer mon fichier et là c'est le drame:
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 26 27 28 29
|
SQL> DECLARE
2 f _file_id UTL_FILE.FILE_TYPE;
3 v_file_location VARCHAR2(256) := '/in';
4 v_line VARCHAR2(4000);
5 BEGIN
6
7 dbms_output.put_line(v_file_location);
8 f_file_id := UTL_FILE.FOPEN(v_file_location,'numero1.txt','a');
9 --UTL_FILE.PUT_LINE(f_file_id,'abcdefghijklmnopqrstuvwxyz');
10 --UTL_FILE.FCLOSE (f_file_id);
11
12
13
14 --f_file_id := UTL_FILE.FOPEN(v_file_location,'numero.txt','r');
15 --UTL_FILE.GET_LINE(f_file_id,v_line);
16 --DBMS_OUTPUT.PUT_LINE(v_line);
17 --UTL_FILE.FCLOSE (f_file_id);
18
19 EXCEPTION
20 WHEN OTHERS
21 THEN
22 dbms_output.put_line(SQLERRM);
23 UTL_FILE.FCLOSE_ALL;
24 END;
25 /
/in
ORA-29280: chemin de répertoire non valide
Procédure PL/SQL terminée avec succès. |
Mon dossier 'E:/SQL/in' existe bel et bien. Mais oracle n'arrive visiblementpas à le trouver. J'ai essayé de modifier le chemin, mais sans succès.
J'ai lu quelque part qu'il fallait rajouter une ligne dans le fichier ora.init: utl_file_dir = '<Chemin/>'
Je l'ai donc cherché pour le modifier, mais je ne l'ai pas trouvé...
J'ai un raccourci qui se nomme init.ora, mais il pointe vers Le fichier : init.ora.44200618538 En déspoire de cause, j'ai modifié ce fichier, mais rien n'y fait.
Je travaille sur oracle 10G et Windows Xp pro 2002.
Merci beaucoup de votre aide.
Stos