Es que c'est possible de donner a une variable une valeur se trouvant dans un fichier texte ????
J'aimerai faire une boucle et qu'une variable puisse prendre differentes valeurs qui se trouverai dans un fichier texte au prealable.
Es que c'est possible de donner a une variable une valeur se trouvant dans un fichier texte ????
J'aimerai faire une boucle et qu'une variable puisse prendre differentes valeurs qui se trouverai dans un fichier texte au prealable.
Oui c'est possible grace au package utl_file
Savez vous d'ou vient cette erreur ???
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 SQL> declare 2 f_file_id UTL_FILE.FILE_TYPE; 3 BEGIN 4 f_file_id := UTL_FILE.FOPEN('test','testecri','a'); 5 UTL_FILE.PUT_LINE (f_file_id,'Il est beau mon fichier :-D'); 6 UTL_FILE.FCLOSE (f_file_id); 7 end; 8 / declare * ERROR à la ligne 1 : ORA-06510: PL/SQL : exception définie par l'utilisateur non traitée ORA-06512: à "SYS.UTL_FILE", ligne 98 ORA-06512: à "SYS.UTL_FILE", ligne 157 ORA-06512: à ligne 4
Pour moi cela viens du fait que ton repertoire de sortie n'est pas bon dans ton utl_file.fopen...
As tu fait ceci :
Attention le nom du DIRECTORY doit être en MAJUSCULE
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 CREATE OR REPLACE DIRECTORY MON_REP AS '/oracle'; GRANT READ,WRITE ON DIRECTORY MON_REP TO mon_user;
J'ai une erreur sur les privilèges:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 SQL> CREATE OR REPLACE DIRECTORY TEST AS 'C:\test'; Répertoire créé. SQL> GRANT READ,WRITE ON DIRECTORY TEST TO Pack95; GRANT READ,WRITE ON DIRECTORY TEST TO Pack95 * ERROR à la ligne 1 : ORA-22928: privilège sur répertoires non valide
j'arrive a donner le privilège read mais pas le Write .
Une ptite idée ??
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 SQL> GRANT READ ON DIRECTORY TEST TO PACK95; Autorisation de privilèges (GRANT) acceptée. SQL> GRANT READ, WRITE ON DIRECTORY TEST TO PACK95; GRANT READ, WRITE ON DIRECTORY TEST TO PACK95 * ERROR à la ligne 1 : ORA-22928: privilège sur répertoires non valide
l'utilisateur qui exécute les process Oracle a-t-il les droits sur ce répertoire ?
C'est quel OS et quel est l'utilisateur d'installation ?
Oracle 8i.
J'ai mit les droits sur "Pack95" a partir de "System" mais je n'arrive pas a donner le droit d'ecriture.
ATTENTION : je parle du coté OS... si l'utilisateur oracle (ou autre qui a servi pour l'install) n'a pas les droits sur le répertoire définit dans la DIRECTORY ça ne marchera effectivement pas
Comment savoir quel utilisateur a les droits dessus??
t'es sous Linux ou Windows ?
Sous linux tu vois les droits sur le fichier avec ls -l <fichier>, sous windows c'est dans les propriétés du répertoire
Attention, sous windows, ça ne peux pas marcher sur les lecteurs réseaux, il faut dans ce cas utiliser le chemin complet de la forme \\serveur\dossier
mai en faite es que d'un poste client je peut utiliser un dossier du poste client?? peut on donner les droits a partir du poste client ??
ha non pas du tout, c'est un répertoire du serveur qu'il faut indiquer
Es que le dossier doit etre a un endroit specifique sur le serveur ou pas ??
parce ke la j'arrete pa d'avoir toujours les memes erreurs.
pas sur un lecteur réseau c'est tout et dans un répertoire ou le compte qui lance la base a les droits en écriture
Je comprend vraiment pas pourkoi ca veut pas marcher.....
J'arrive a bien donner les droits de lecture. J'arrive pas pour l'ecriture
et quand je lance une operation de lecture dans un fichier j'ai cette erreur:
mais pourtant j'utilise bien un dossier n'etant pas sur un lecteur reseau et sur lequel j'ai tout les droits.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 ERROR à la ligne 1 : ORA-06510: PL/SQL : exception définie par l'utilisateur non traitée ORA-06512: à "SYS.UTL_FILE", ligne 98 ORA-06512: à "SYS.UTL_FILE", ligne 157 ORA-06512: à ligne 4
Vous n'auriez pas un autre moyen de pouvoir lire dans un fichier ??
Tu as bien une version d'Oracle supérieur ou égale à la 8i ?
le nom du DIRECTORY doit être en majuscule
Colle ton code ici qu'on voit d'où vient l'erreur
Version:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Connecté à : Oracle8i Release 8.1.7.0.0 - Production JServer Release 8.1.7.0.0 - Production
Je me connecte avec l'utilisateur "SYS" a partir du poste serveur oracle.
Ensuite je me reconnecte en utilisateur "Pack95" sur le poste serveur.
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 SQL> show parameter utl_file NAME TYPE VALUE ------------------------------------ ------- ------------------------- utl_file_dir string SQL> CREATE OR REPLACE DIRECTORY TEST AS 'D:\ORA817\TEST'; Répertoire créé. SQL> GRANT READ, WRITE ON DIRECTORY TEST TO Pack95; GRANT READ, WRITE ON DIRECTORY TEST TO Pack95 * ERREUR à la ligne 1 : ORA-22928: privilège sur répertoires non valide SQL> GRANT READ ON DIRECTORY TEST TO Pack95; Autorisation de privilèges (GRANT) acceptée.
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 SQL> DECLARE 2 f_file_id UTL_FILE.FILE_TYPE; 3 v_line VARCHAR2(4000); 4 BEGIN 5 f_file_id := UTL_FILE.FOPEN('TEST','numero.txt','r'); 6 UTL_FILE.GET_LINE(f_file_id,v_line); 7 DBMS_OUTPUT.PUT_LINE(v_line); 8 END; 9 / DECLARE * ERREUR à la ligne 1 : ORA-06510: PL/SQL : exception définie par l'utilisateur non traitée ORA-06512: à "SYS.UTL_FILE", ligne 98 ORA-06512: à "SYS.UTL_FILE", ligne 157 ORA-06512: à ligne 5
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager