Précédent   Forum des professionnels en informatique > Bases de données > Oracle > PL/SQL
PL/SQL Forum d'entraide sur le PL/SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/05/2004, 12h25   #1
Invité de passage
 
Inscription : mai 2004
Messages : 29
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 29
Points : 4
Points : 4
Par défaut pl/sql variable

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.
jere est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2004, 12h26   #2
Membre éprouvé
 
Inscription : mai 2003
Messages : 412
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mai 2003
Messages : 412
Points : 419
Points : 419
Oui c'est possible grace au package utl_file
__________________
Mes articles: http://helyos.developpez.com/
Mon site : http://www.sylohe.com
helyos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2004, 12h30   #3
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
voila qui devrait t'aider

http://www.developpez.net/forums/viewtopic.php?t=198598

et

http://www.developpez.net/forums/viewtopic.php?t=197957
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2004, 14h20   #4
Invité de passage
 
Inscription : mai 2004
Messages : 29
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 29
Points : 4
Points : 4
Savez vous d'ou vient cette erreur ???

Code :
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
jere est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2004, 14h33   #5
Membre éprouvé
 
Inscription : mai 2003
Messages : 412
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mai 2003
Messages : 412
Points : 419
Points : 419
Pour moi cela viens du fait que ton repertoire de sortie n'est pas bon dans ton utl_file.fopen...
__________________
Mes articles: http://helyos.developpez.com/
Mon site : http://www.sylohe.com
helyos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2004, 14h43   #6
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
As tu fait ceci :

Code :
1
2
CREATE OR REPLACE DIRECTORY MON_REP AS '/oracle'; 
GRANT READ,WRITE ON DIRECTORY MON_REP TO mon_user;
Attention le nom du DIRECTORY doit être en MAJUSCULE
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2004, 14h48   #7
Invité de passage
 
Inscription : mai 2004
Messages : 29
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 29
Points : 4
Points : 4
J'ai une erreur sur les privilèges:

Code :
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
jere est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2004, 15h19   #8
Invité de passage
 
Inscription : mai 2004
Messages : 29
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 29
Points : 4
Points : 4
j'arrive a donner le privilège read mais pas le Write .

Une ptite idée ??

Code :
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
jere est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2004, 16h17   #9
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
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 ?
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2004, 16h20   #10
Invité de passage
 
Inscription : mai 2004
Messages : 29
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 29
Points : 4
Points : 4
Oracle 8i.

J'ai mit les droits sur "Pack95" a partir de "System" mais je n'arrive pas a donner le droit d'ecriture.
jere est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2004, 17h47   #11
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
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
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2004, 09h19   #12
Invité de passage
 
Inscription : mai 2004
Messages : 29
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 29
Points : 4
Points : 4
Comment savoir quel utilisateur a les droits dessus??
jere est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2004, 09h36   #13
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
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
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2004, 09h49   #14
Invité de passage
 
Inscription : mai 2004
Messages : 29
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 29
Points : 4
Points : 4
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 ??
jere est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2004, 09h54   #15
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
ha non pas du tout, c'est un répertoire du serveur qu'il faut indiquer
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2004, 10h59   #16
Invité de passage
 
Inscription : mai 2004
Messages : 29
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 29
Points : 4
Points : 4
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.
jere est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2004, 11h30   #17
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
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
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2004, 12h03   #18
Invité de passage
 
Inscription : mai 2004
Messages : 29
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 29
Points : 4
Points : 4
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:

Code :
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
mais pourtant j'utilise bien un dossier n'etant pas sur un lecteur reseau et sur lequel j'ai tout les droits.

Vous n'auriez pas un autre moyen de pouvoir lire dans un fichier ??
jere est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2004, 13h26   #19
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
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
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2004, 13h58   #20
Invité de passage
 
Inscription : mai 2004
Messages : 29
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 29
Points : 4
Points : 4
Version:
Code :
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.

Code :
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.
Ensuite je me reconnecte en utilisateur "Pack95" sur le poste serveur.

Code :
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
jere est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h42.


 
 
 
 
Partenaires

Hébergement Web