Précédent   Forum des professionnels en informatique > Bases de données > Oracle
Oracle Forum Oracle : le serveur, les outils, ... Voir F.A.Q Oracle Tutoriels Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/05/2011, 17h40   #1
Invité régulier
 
Femme
Étudiant
Inscription : avril 2011
Messages : 10
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2011
Messages : 10
Points : 6
Points : 6
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
princesse_sissi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2011, 17h52   #2
Invité régulier
 
Femme
Étudiant
Inscription : avril 2011
Messages : 10
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2011
Messages : 10
Points : 6
Points : 6
Pour vous prouvez, j'ai essayez ca :

Création du DIRECTORY
Code :
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 :
CREATE TABLE t_blob (id number, image blob);
Et enfin le package:
Code :
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 :
exec sql_blob.add_blob(1,'mon_image.extension');
Alors je reçois ces erreurs :
Citation:
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
princesse_sissi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2011, 18h44   #3
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 684
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 684
Points : 10 432
Points : 10 432
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
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.
__________________
Email : http://scr.im/waldar
Waldar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2011, 19h50   #4
Invité régulier
 
Femme
Étudiant
Inscription : avril 2011
Messages : 10
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2011
Messages : 10
Points : 6
Points : 6
Merci de me répondre si vite mais javais pas compris :

je l'ai juste appelé avec BEGIN END au lieu de EXEC.
princesse_sissi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2011, 00h30   #5
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 684
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 684
Points : 10 432
Points : 10 432
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
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 :
1
2
3
4
begin
    sql_blob.add_blob(1,'mon_image.extension');
end;
/
__________________
Email : http://scr.im/waldar
Waldar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2011, 00h35   #6
Invité régulier
 
Femme
Étudiant
Inscription : avril 2011
Messages : 10
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2011
Messages : 10
Points : 6
Points : 6
oui ça à marcher super bien, Merci!
princesse_sissi est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h27.


 
 
 
 
Partenaires

Hébergement Web