Bonjour,
J'utilse Oracle 10g et j'ai besoin de faire une fonction PL/SQL qui écrit dans un fichier. Malheuresement j'obtiens l'erreur suivante des l'ouverture du fichier :
Avec le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 ERREUR :ORA-20100: ORA-29283: opération non valide sur le fichier ORA-06512: à "SYS.UTL_FILE", ligne 475 ORA-29283: opération non valide sur le fichier [FICHIERS_OUT] -> fic.txt STATUS=-1 SQLERRM=ORA-20100: ORA-29283: opération non valide sur le fichier ORA-06512: à "SYS.UTL_FILE", ligne 475 ORA-29283: opération non valide sur le fichier [FICHIERS_OUT] -> fic.txt STATUS = -1 SQLERRM = ORA-20100: ORA-29283: opération non valide sur le fichier ORA-06512: à "SYS.UTL_FILE", ligne 475 ORA-29283: opération non valide sur le fichier [FICHIERS_OUT] -> fic.txt PL/SQL procedure successfully completed
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57 FUNCTION enregTrans ( p_VAR VARCHAR2 ) RETURN PARAMETERS_VALUES_ARRAY AS v_data PARAMETERS_VALUES_ARRAY := PARAMETERS_VALUES_ARRAY(); Fic_out VARCHAR2(128) := 'fic.txt'; Dir_out VARCHAR(30):= 'FICHIERS_OUT' ; FicOUT UTL_FILE.FILE_TYPE ; -- Tampon de travail -- Ligne VARCHAR2(32767) ; -- Message -- Msg VARCHAR2(256) ; -- Exception -- Fin EXCEPTION ; BEGIN DECLARE BEGIN inproc ('enregTrans(' || p_VAR || ')' ); BEGIN FicOUT := UTL_FILE.FOPEN(Dir_out,Fic_out,'W',32764) ; EXCEPTION WHEN OTHERS THEN Msg := SQLERRM || ' [' || Dir_out || '] -> ' || Fic_out; RAISE Fin ; END ; EXCEPTION WHEN Fin THEN UTL_FILE.FCLOSE_ALL ; RAISE_APPLICATION_ERROR( -20100, Msg ) ; END ; set_Parameters_Values(v_data,'STATUS', '0'); outproc (v_data) ; RETURN (v_data); EXCEPTION -- exception section WHEN OTHERS THEN MyDebug ('ERREUR :' || SQLERRM); set_Parameters_Values(v_data,'STATUS', '-1'); set_Parameters_Values(v_data,'SQLERRM', SQLERRM); outproc (v_data) ; RETURN (v_data); END;
En ayant auparavant fait :
Merci pour votre aide ;-)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 CREATE DIRECTORY FICHIERS_OUT AS 'E:\documents' ; GRANT READ, WRITE ON DIRECTORY FICHIERS_OUT TO PUBLIC ;
Partager