Le Champ BLOB

Signaler
Messages postés
3
Date d'inscription
vendredi 16 mars 2007
Statut
Membre
Dernière intervention
19 mars 2007
-
Messages postés
1
Date d'inscription
samedi 11 novembre 2000
Statut
Membre
Dernière intervention
19 septembre 2007
-
Bonjour à tous,
je souhaiterais savoir si quelqu'un pouvais m'aider concernant l'affichage d'un champ blob sur une base oracle.
J'ai déjà fait pas mal de recherche sur google et sur ce site mais sans succès (j'ai trouvé pas mal d'infos mais....).

Je vous explique le domaine d'utilisation :
PHP (biensûr)
une base Oracle auquel je n'ai accès qu'en lecture. Je ne suis pas le gestionnaire de la base.

Lors de mes recherches dans les tables, la donnée que je veux afficher est de type blob. Le type exact je ne le connais pas mais il s'agit de texte. Mon problème est comment faire pour afficher ce champ blob. Je sais que sur une base MySQL j'aurais pu utiliser Substring (si je me trompe pas) mais oracle...

Le code que j'utilise :
$connect = ocilogon("user","pass", "bdd");
$stmt = ociparse($connect,"select champ from table");

while (ocifetch($stmt))
   {
   Et c'est là que je bloque... je sais comment afficher un contenu tout simple : 
   echo ociresult($stmt,colonne);
   }

Je sais aussi qu'il faut utiliser un header("Content-type: type");

Mais rien à faire je bloque complètement la :(

Si quelqu'un pouvait m'aider...

D'avance merci

4 réponses

Messages postés
503
Date d'inscription
mercredi 29 décembre 2004
Statut
Membre
Dernière intervention
20 mars 2012

Messages postés
3
Date d'inscription
vendredi 16 mars 2007
Statut
Membre
Dernière intervention
19 mars 2007

Salut Younes,

je vais tester ça lundi parce que je suis plus au taf là et je te tiens au courant. J'ai regardé un peu les liens que tu m'a donnée, et http://www.oracle.com/technology/pub/articles/oracle_php_cookbook/fuecks_lobs.html parait être ce que je cherche.

Merci en tout cas pour une réponse si rapide.
Messages postés
3
Date d'inscription
vendredi 16 mars 2007
Statut
Membre
Dernière intervention
19 mars 2007

Salut,


j'ai testé la fonction ociloadlob mais sans succès. Php ne me renvoi pas d'erreur mais ne m'affiche rien.

Du coup j'ai vérifié le type exact du champ avec la fonction ocicolumntype. Cette fonction m'a retourné le type LONG RAW.

J'ai trouvé quelques astuces pour passé ce type Long Raw en blob mais sans succès.

Sur un site il est indiqué d'utiliser to_lob dans la requête mais si je fais ça il ne veux plus exécuter la requête et me donne une erreur de nom de colonne invalide.

Là je sèche encore.

le bout de code pour l'affichage du blob serait : echo ociloadlob($stmt,$i);

Si vous voyez autre chose svp

Merci
Messages postés
1
Date d'inscription
samedi 11 novembre 2000
Statut
Membre
Dernière intervention
19 septembre 2007

Dans l'adresse qu'il t'a donné il y bien la réponse pour ta demande

dans la partie Selecting a LOB

while ( $row = oci_fetch_array($stmt, OCI_ASSOC+OCI_RETURN_LOBS) )
{
print "ID: {$row['ID']}, {$row['MYLOB']}\n";
}

Voila en gras ce qu'il faut rajouter si t'utilise
oci_fetch_array tu rajoute seulement OCI_ASSOC+OCI_RETURN_LOBS
et c'est réglé, j'espère que ce n'est pas trop tard pour
ta demande je viens juste de la voir.

Bon courage