Le Champ BLOB

elcoyote38 Messages postés 3 Date d'inscription vendredi 16 mars 2007 Statut Membre Dernière intervention 19 mars 2007 - 16 mars 2007 à 16:44
mindala Messages postés 1 Date d'inscription samedi 11 novembre 2000 Statut Membre Dernière intervention 19 septembre 2007 - 19 sept. 2007 à 15:13
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

younes371 Messages postés 502 Date d'inscription mercredi 29 décembre 2004 Statut Membre Dernière intervention 20 mars 2012
16 mars 2007 à 21:30
0
elcoyote38 Messages postés 3 Date d'inscription vendredi 16 mars 2007 Statut Membre Dernière intervention 19 mars 2007
17 mars 2007 à 07:44
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.
0
elcoyote38 Messages postés 3 Date d'inscription vendredi 16 mars 2007 Statut Membre Dernière intervention 19 mars 2007
19 mars 2007 à 09:43
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
0
mindala Messages postés 1 Date d'inscription samedi 11 novembre 2000 Statut Membre Dernière intervention 19 septembre 2007
19 sept. 2007 à 15:13
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
0
Rejoignez-nous