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 :

ORACLE: insertion d'image sous oracle 10g


Sujet :

Oracle

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 18
    Points : 11
    Points
    11
    Par défaut ORACLE: insertion d'image sous oracle 10g
    Bonjour,
    Je souhaite bien si quelqu'un pourrait m'aider, je galère depuis longtemps sur Google mais rien ne marche!

    J'ai besoin pour mon projet a insérer des images dans une base et puis les extraire via PHP.

    Je travail sou :
    XP pack3
    ORACLE 10g
    Apache 2.0.64
    PHP 5

    SVP quelqu'un m'oriente

  2. #2
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 18
    Points : 11
    Points
    11
    Par défaut
    Pour vous prouvez, j'ai essayez ca :

    Création du DIRECTORY
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CREATE directory blobdir AS 'c:\temp\';
    GRANT READ ON directory blobdir TO scott;
    Création d'une table qui contiendra les images:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE TABLE t_blob (id number, image blob);
    Et enfin le package:
    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
    CREATE OR REPLACE PACKAGE sql_blob IS
     
      -- Procédure servant à ajouter un BLOB à notre table.
      -- p_id correspond à l'id
      -- p_name correspond au nom du fichier à inserer.
      PROCEDURE add_blob(p_id NUMBER, p_name VARCHAR2);
     
    END sql_blob;
    /
    CREATE OR REPLACE PACKAGE BODY sql_blob IS
     
      PROCEDURE add_blob(p_id NUMBER, p_name VARCHAR2) IS
        v_blob  BLOB;
        v_bfile BFILE;
      BEGIN
        -- On insére la ligne avec un blob vide dont on récupère le pointeur
        INSERT INTO t_blob
        VALUES
          (p_id, empty_blob())
        RETURNING image INTO v_blob;
        -- On déclare un pointeur vers notre fichier
        v_bfile := bfilename(directory => 'BLOBDIR', filename => p_name);
        -- On ouvre ce fichier
        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;
    END sql_blob;
    /
    Tout cela passe bien.

    Et quand je veux insérer une image, j'utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    exec sql_blob.add_blob(1,'mon_image.extension');
    Alors je reçois ces erreurs :
    ORA-04063: package body "SYSTEM.SQL_BLOB" comporte des erreurs
    ORA-06508L/SQL :unite de programme nommée "SYSTEM.SQL_BLOB" introuvable.
    ORA-06512: erreur a la ligne 1
    Merci de me répondre

  3. #3
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Créer des objets dans le user SYSTEM est déconseillé.

    J'ai testé votre code et il a bien fonctionné de mon côté (Oracle 11.1.0.7.0 sur Windows Server 2003 64 bits), je l'ai juste appelé avec BEGIN END au lieu de EXEC.

    Je pencherai donc sur un problème de droits à cause (ou grâce) à l'utilisation du user SYSTEM.

  4. #4
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 18
    Points : 11
    Points
    11
    Par défaut
    Merci de me répondre si vite mais javais pas compris :

    je l'ai juste appelé avec BEGIN END au lieu de EXEC.

  5. #5
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    exec est une commande SQL*Plus, pas PL/SQL.
    Je voulais juste dire que je l'ai exécuté ainsi, mais ça revient au même :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    begin
        sql_blob.add_blob(1,'mon_image.extension');
    end;
    /

  6. #6
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 18
    Points : 11
    Points
    11
    Par défaut
    oui ça à marcher super bien, Merci!

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

Discussions similaires

  1. Méthode d'insertion d'une image sous Oracle 10g via PHP
    Par princesse_sissi dans le forum Oracle
    Réponses: 0
    Dernier message: 20/05/2011, 21h45
  2. Images sous Oracle
    Par deutsch dans le forum Oracle
    Réponses: 1
    Dernier message: 29/04/2007, 08h32
  3. Réponses: 1
    Dernier message: 21/12/2006, 17h06
  4. Champ Image sous oracle
    Par smazaudi dans le forum Bases de données
    Réponses: 1
    Dernier message: 21/06/2005, 08h56

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