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

PL/SQL Oracle Discussion :

Erreur : ORA-29280 : chemin de répertoire non valide


Sujet :

PL/SQL Oracle

  1. #1
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut Erreur : ORA-29280 : chemin de répertoire non valide
    Bonjour,

    J'essaie d'exécuter une procédure et je rencontre l'erreur suivante :
    ORA-29280: chemin de répertoire non valide
    ORA-06512: à "SYS.UTL_FILE", ligne 41
    ORA-06512: à "SYS.UTL_FILE", ligne 562
    ORA-06512: à "GRHUM.CREATE_LDAP_FILE", ligne 66
    ORA-06512: à ligne 2
    Autour de la ligne 66 de GRHUM.CREATE_LDAP_FILE :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    BEGIN
    DBMS_OUTPUT.DISABLE; -- on vide le buffer
    DBMS_OUTPUT.ENABLE(1000000); -- pour eviter Error: ORA-20000: ORU-10027: buffer overflow, limit of 20000 bytes
     
    LDAP_ADD_FILE_HANDLER    := UTL_FILE.FOPEN_NCHAR(DIR_PATH, LDAP_ADD_FILE_NAME, 'w');
    LDAP_LOG_FILE_HANDLER    := UTL_FILE.FOPEN_NCHAR(DIR_PATH, LDAP_LOG_FILE_NAME, 'w');
    Je suppose que ce qui pose problème est le DIR_PATH. Il est ainsi défini plus haut dans la même procédure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DIR_PATH VARCHAR2(50)              := '/Bases/Instances11g/cocktail';
    Bien entendu, ce répertoire existe, c'est celui de la BDD.
    La procédure étant un peu vieille, le DIR_PATH était auparavant défini ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DIR_PATH VARCHAR2(50)              := '/Bases/Instances9i/gest/utl';
    Mais ce répertoire n'existe évidemment pas chez moi.

    Une idée sur la cause du problème ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  2. #2
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Dans les anciennes versions d’Oracle le paramètre DIR_PATH c’était un chemin (comme dans votre cas) qui devrait être présent dans une liste des répertoires accessible à la base (UTL_FILE_DIR).
    Actuellement ce paramètre devrait pointer vers un objet Oracle de type directory. Dans votre cas vous utilisez l’ancien mode donc si vous changez le répertoire vous devez le lister aussi dans UTL_FILE_DIR. Sinon modifiez la procédure pour utiliser l’objet de type directory

    ** FOPEN - open file
    **
    ** As of 8.0.6, you can have a maximum of 50 files open simultaneously.
    **
    ** As of 9.0.2, UTL_FILE allows file system access for directories
    ** created as database objects. See the CREATE DIRECTORY command.
    ** Directory object names are case sensitive and must match exactly
    ** the NAME string in ALL_DIRECTORIES. The LOCATION parameter may be
    ** either a directory string from the UTL_FILE_DIR init.ora parameter
    ** or a directory object name
    .

  3. #3
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Merci pour la réponse.

    J'ai créé un répertoire /Bases/Instances11g/cocktail/ldap et, dans SQL Developer, j'ai créé un répertoire LDAP qui pointe vers ce chemin.

    J'ai modifié dans la procédure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DIR_PATH VARCHAR2(50)              := '/Bases/Instances11g/cocktail/ldap';
    Mais j'ai toujours l'erreur.

    J'ai sans doute mal compris ta réponse ?

    Actuellement ce paramètre devrait pointer vers un objet Oracle de type directory. Dans votre cas vous utilisez l’ancien mode donc si vous changez le répertoire vous devez le lister aussi dans UTL_FILE_DIR. Sinon modifiez la procédure pour utiliser l’objet de type directory
    Je n'ai pas trouvé UTL_FILE_DIR. C'est un objet dans SYS ? Une table ? Autre chose ?

    Quelle serait la méthode pour "pointer vers un objet Oracle de type directory" ? Est-ce que c'est un tel objet que j'ai créé via SQL Developer ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  4. #4
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    UTL_FILE_DIR est visible via sqlplus connexion comme dba
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SQL> show parameter UTL_FILE_DIR
     
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    utl_file_dir                         string
    Lisez un peu les exemples du package UTL_FILE

Discussions similaires

  1. erreur : ORA-29280: chemin de répertoire non valide
    Par raymona86 dans le forum PL/SQL
    Réponses: 1
    Dernier message: 07/06/2011, 20h30
  2. Erreur ORA-29280: bloquante
    Par elharet dans le forum Oracle
    Réponses: 2
    Dernier message: 05/09/2007, 12h37
  3. Réponses: 1
    Dernier message: 08/07/2007, 17h31
  4. Chemin d'acces non valide
    Par Alex063 dans le forum Access
    Réponses: 13
    Dernier message: 28/03/2006, 11h29
  5. ORA-01846: jour de semaine non valide
    Par szdavid dans le forum Oracle
    Réponses: 7
    Dernier message: 16/11/2005, 14h23

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