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 :

ORA-22285: répertoire ou fichier inexistant pour l'opération FILEOPEN


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 87
    Par défaut ORA-22285: répertoire ou fichier inexistant pour l'opération FILEOPEN
    bonjour,
    j'ai un problème avec ma procédure qui me permet de stocker le type blob
    mais il m'affiche une erreur

    je tiens a votre information que oracle est installé sur une machine unix et je l'attaque à partir d'une machine Windows


    voilà comment j'ai crée mon répertoire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    CONNECT / AS SYSDBA
    CREATE OR REPLACE DIRECTORY mydir AS '/tmp';
    GRANT read, write ON DIRECTORY mydir TO mon_user;

    ORA-22285: répertoire ou fichier inexistant pour l'opération FILEOPEN
    ORA-06512: à "SYS.DBMS_LOB", ligne 523
    ORA-06512: à "UFO4_DBO.SQL_BLOB", ligne 19
    ORA-06512: à "UFO4_DBO.PA_JEU", ligne 57
    ORA-06512: à ligne 1
    voila le code de ma procédure
    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
     
      PROCEDURE add_blob(v_NOMJEU VARCHAR2) IS
        v_blob  BLOB;
        v_bfile BFILE;
      BEGIN
        -- SET SERVEROUTPUT ON;
        -- On insére la ligne avec un blob vide dont on récupère le pointeur
        INSERT INTO t_blob
        VALUES
          (v_NOMJEU, empty_blob())
        RETURNING image INTO v_blob;
        -- On déclare un pointeur vers notre fichier
        v_bfile := bfilename(directory => 'mydir', filename => v_NOMJEU|| '.jpg');
        -- On ouvre ce fichier
     
        -- DBMS_OUTPUT.PUT_LINE('v_bfile = ' || v_bfile);
       -- v_bfile := '/home/oracle/test/pacman.jpg';
        dbms_lob.fileopen(v_bfile);
     
        -- On rempli l'emplacement du BLOB vide dans la table avec le contenu de notre fichier
        dbms_lob.loadfromfile(v_blob, v_bfile, dbms_lob.getlength(v_bfile));
        -- On ferme le fichier
        dbms_lob.fileclose(v_bfile);
      END;

    je vous remercie d'avance de votre aide ...

  2. #2
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    Je crois que le nom du directory est créé en majuscules.

    fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from all_directories
    pour vérifier

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 87
    Par défaut
    oui il connait pas le répertoire a cause du majuscule et maintenant il me sort cette erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ORA-22288: échec de l'opération FILEOPEN sur le fichier ou le LOB
    No such file or directory
    ORA-06512: à "SYS.DBMS_LOB", ligne 523
    ORA-06512: à "UFO4_DBO.SQL_BLOB", ligne 19
    ORA-06512: à "UFO4_DBO.PA_JEU", ligne 57
    ORA-06512: à ligne 1

    merci de votre aide

  4. #4
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    Le répertoire est bien sur le serveur de la base de données ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 87
    Par défaut
    quand j'accéde avec la commande cd /tmp dans le repertoire et j eliste la liste des repertoires ki existe je trouve pas l erepertoire que je viens de creer avec la commande

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CREATE OR REPLACE DIRECTORY mydir AS '/tmp';
    GRANT READ, WRITE ON DIRECTORY mydir TO mon_user;

  6. #6
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    Attention :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE OR REPLACE DIRECTORY mydir AS '/tmp';
    Ceci ne crée pas le répertoire /tmp sur le serveur.
    ça crée juste un alias (MYDIR) dans la base de donnée vers le répertoire /tmp du serveur de base de données.

    Il faut que ce répertoire existe, et soit accessible par le propriétaire de la base.

Discussions similaires

  1. automatiser les mêmes tâches pour un répertoire de fichiers .txt
    Par bonelzez dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 04/11/2010, 12h12
  2. message pour fichier inexistant
    Par antakini dans le forum Access
    Réponses: 4
    Dernier message: 20/12/2006, 11h09
  3. [débutant]Quel fichier à joindre pour directdraw ?
    Par lvdnono dans le forum DirectX
    Réponses: 3
    Dernier message: 31/05/2004, 12h01
  4. [débutant]ou mettre un fichier java pour une appli jsp?
    Par zozolh2 dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 11/05/2004, 15h20
  5. [MFC] ouverture en lecture d'un fichier inexistant
    Par bigboomshakala dans le forum MFC
    Réponses: 9
    Dernier message: 07/05/2004, 12h42

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