IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Oracle Discussion :

Manipulation du paquetage UTL_FILE


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Juin 2006
    Messages : 39
    Par défaut Manipulation du paquetage UTL_FILE
    Bonjour,

    Où est ce qu on peut trouver les repertoires créés suite à ces commandes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SQL> CREATE DIRECTORY FICHIERS_IN AS 'd:\fichiers\in' ;
    SQL> GRANT READ ON DIRECTORY FICHIERS_IN TO PUBLIC ;
     
    SQL> CREATE DIRECTORY FICHIERS_OUT AS 'd:\fichiers\out' ;
    SQL> GRANT READ, WRITE ON DIRECTORY FICHIERS_OUT TO PUBLIC ;
    NB1 : les commandes s'exécutent correctement
    NB2 : version Oracle 9 installé sur un serveur Unix.
    merci

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    139
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2006
    Messages : 139
    Par défaut
    Bonsoir,

    UTL_FILE sert à ecrire sur le serveur.
    Les repertoires crees sont egalement sur le serveur mais si c'est un UNIX il faudrait plutot faire /home/...

    cdt

  3. #3
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut

  4. #4
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    Attention ces commandes ne servent pas à créer des répertoires physiques, mais à donner l'autorisation à un utilisateur oracle pour écrire dans les répertoires. Les répertoires physiques doivent ensuite avoir les droits nécessaires pour que l'utilisateur système propriétaire de l'installation oracle puisse écrire/lire dedans.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Juin 2006
    Messages : 39
    Par défaut
    Citation Envoyé par plaineR Voir le message
    Attention ces commandes ne servent pas à créer des répertoires physiques, mais à donner l'autorisation à un utilisateur oracle pour écrire dans les répertoires. Les répertoires physiques doivent ensuite avoir les droits nécessaires pour que l'utilisateur système propriétaire de l'installation oracle puisse écrire/lire dedans.
    Lorsque j'exécute mon script :

    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
    Declare
      -- Noms des fichiers --
      LC$Fic_in   Varchar2(128) := 'test.txt' ;       -- a adapter sur votre configuration
      LC$Fic_out  Varchar2(128) := 'test1.txt' ;      -- a adapter sur votre configuration
      -- Noms des répertoires --
      LC$Dir_in   Varchar(30)   := 'FICHIERS_IN';    -- a adapter sur votre configuration
      LC$Dir_out  Varchar(30)   := 'FICHIERS_OUT' ;  -- a adapter sur votre configuration
      -- Pointeurs de fichier --
      LF$FicIN	UTL_FILE.FILE_TYPE ;
      LF$FicOUT	UTL_FILE.FILE_TYPE ;
      -- Tampon de travail --  
      LC$Ligne	Varchar2(32767) ;  
      -- Message --
      LC$Msg    Varchar2(256) ;
      -- Exception --
      LE$Fin    Exception ;
    Begin
     
      -- Ouverture du fichier en entrée
      Begin
        LF$FicIN := UTL_FILE.FOPEN( LC$Dir_in, LC$Fic_in, 'R', 32764 ) ;
      Exception
        When OTHERS Then
    	LC$Msg := SQLERRM || ' [' || LC$Dir_in || '] -> ' || LC$Fic_in;
    	Raise LE$Fin ;
      End ;
     
      -- Ouverture du fichier en sortie
      Begin
        LF$FicOUT := UTL_FILE.FOPEN( LC$Dir_out, LC$Fic_out, 'W', 32764 ) ;
      Exception
        When OTHERS Then
    	LC$Msg := SQLERRM || ' [' || LC$Dir_out || '] -> ' || LC$Fic_out;
    	Raise LE$Fin ;
      End ;	
     
      -- Traitement --
      Begin
         Loop
    	-- lecture du fichier en entrée --
    	UTL_FILE.GET_LINE( LF$FicIN,  LC$Ligne ) ;
    	-- écriture du fichier en sortie --
    	UTL_FILE.PUT_LINE( LF$FicOUT, LC$Ligne ) ;
         End loop ;
      Exception
         When NO_DATA_FOUND Then -- Fin du fichier en entrée
            -- Fermeture des fichiers --
    	UTL_FILE.FCLOSE( LF$FicIN ) ;
    	UTL_FILE.FCLOSE( LF$FicOUT ) ;
      End  ;		 		
     
    Exception
       When LE$Fin Then
         UTL_FILE.FCLOSE_ALL ;
         RAISE_APPLICATION_ERROR( -20100, LC$Msg ) ;
    End ;
    j'ai l'erreur suivante :

    ORA-20100: User-Defined Exception [FICHIERS_IN] -> test.txt

    Cette erreur est générée au niveau de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LF$FicIN := UTL_FILE.FOPEN( LC$Dir_in, LC$Fic_in, 'R', 32764 ) ;
    J'ai recherché sur le forum, j'ai trouvé une discusion qui parle de ça mais tjs pas de reponse : http://www.developpez.net/forums/sho...ined+exception

    NB : je travaille avec Oracle 9

    Merci

  6. #6
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    plutôt que jeter une erreur applicative ce serait plus intelligent d'afficher l'erreur Oracle pour comprendre le problème

Discussions similaires

  1. Paquetage utl_file oracle
    Par bo7mid dans le forum SQL
    Réponses: 1
    Dernier message: 31/10/2007, 10h30
  2. Manipulation des handle contexte
    Par rockbiker dans le forum DirectX
    Réponses: 1
    Dernier message: 09/05/2003, 18h51
  3. [VB6]manipuler les semaines en VB ?
    Par kamadji dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 02/05/2003, 12h33
  4. Réponses: 2
    Dernier message: 18/01/2003, 17h06
  5. Fonctions de manipulation des chaines et des dates
    Par Fares BELHAOUAS dans le forum Débuter
    Réponses: 3
    Dernier message: 09/11/2002, 22h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo