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

Oracle Discussion :

Problème lors de l'éxécution d'une procédure stockée


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 46
    Par défaut Problème lors de l'éxécution d'une procédure stockée
    Bonjour à tous,

    J'essaie de créer une procédure stockée qui permet d’insérer une image dans un BLOB.

    Ma table est la suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    CREATE TABLE test_image
     (
     ID NUMBER,
     image_filename VARCHAR2(50),
     image BLOB
     );
    La procédure que j'utilise est:
    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
     
    CREATE OR REPLACE PROCEDURE insert_image_file (p_id NUMBER, p_image_name IN VARCHAR2)
    IS
       src_file   BFILE;
       dst_file   BLOB;
       lgh_file   BINARY_INTEGER;
    BEGIN
       src_file := BFILENAME ('image_DIR', p_image_name);
     
       -- insert a NULL record to lock
       INSERT INTO test_image
                   (ID, image_name, image
                   )
            VALUES (p_id, p_image_name, EMPTY_BLOB ()
                   )
         RETURNING image
              INTO dst_file;
     
       -- lock record
       SELECT     image
             INTO dst_file
             FROM test_image
            WHERE ID = p_id AND image_filename = p_image_name
       FOR UPDATE;
     
       -- open the file
       DBMS_LOB.fileopen (src_file, DBMS_LOB.file_readonly);
       -- determine length
       lgh_file := DBMS_LOB.getlength (src_file);
       -- read the file
       DBMS_LOB.loadfromfile (dst_file, src_file, lgh_file);
     
       -- update the blob field
       UPDATE test_image
          SET image = dst_file
        WHERE ID = p_id AND image_filename = p_image_name;
     
       -- close file
       DBMS_LOB.fileclose (src_file);
    END insert_image_file;
    Et quand je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    EXECUTE insert_image_file(1,'test_image.jpg');
    j'obtiens les messages d'erreurs suivants:
    ERREUR Ó la ligne 1 :
    ORA-22285: rÚpertoire ou fichier inexistant pour l'opÚration FILEOPEN
    ORA-06512: Ó "SYS.DBMS_LOB", ligne 523
    ORA-06512: Ó "FTF.INSERT_IMAGE_FILE", ligne 26
    ORA-06512: Ó ligne 1

    qui peut m'aider svp? Merci

  2. #2
    Expert confirmé 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
    Par défaut
    Mettez 'image_DIR' en majuscule.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 46
    Par défaut
    J'ai essayé mais ça m'a donné les mêmes erreurs

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 46
    Par défaut
    J'ai changé dans la procédure image_DIR vers IMAGE_DIR et j'ai changé aussi le nom du fichier sous C:\ vers IMAGE_DIR
    Maintenant je reçois ces erreurs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    SQL> EXECUTE insert_image_file(1,'test_image.jpg');
    BEGIN insert_image_file(1,'test_image.jpg'); END;
     
    *
    ERREUR Ó la ligne 1 :
    ORA-00925: mot-clÚ INTO absent
    ORA-06512: Ó "FTF.INSERT_IMAGE_FILE", ligne 12
    ORA-06512: Ó ligne 1
     
     
    SQL>

  5. #5
    Expert confirmé 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
    Par défaut
    Avez-vous changé la procédure INSERT_IMAGE_FILE pour utiliser du SQL dynamique ?

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 46
    Par défaut
    Je pense que j'ai un problème au niveau du fichier IMAGE_DIR là où j'ai mis les photos.. d'après le message d'erreur il n'arrive pas à ouvrir ce fichier peut être qu'il est introuvable pour la procédure ! comment résoudre ce problème svp?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème lors de l'éxécution d'une page
    Par malgache dans le forum ASP.NET
    Réponses: 0
    Dernier message: 02/02/2012, 17h25
  2. Réponses: 1
    Dernier message: 28/12/2010, 14h49
  3. Réponses: 7
    Dernier message: 05/06/2008, 14h37
  4. Problème lors de l'appel d'une procédure stockée
    Par ToxiZz dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 21/05/2006, 23h42
  5. Problème de récup de résultats d'une procédure stockée
    Par an_merle dans le forum SQL Procédural
    Réponses: 6
    Dernier message: 12/01/2006, 10h08

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