Lire un clob d'oracle avec windows

thomas79
Invité n'ayant pas de compte PHPfrance

09 janv. 2007, 23:06

Je n'arrive pas à lire un clob.
L'insertion par contre fonctionne très bien.
J'utilise php5.1.4 avec odbc bien sur et php_oci8.dll
sous windows.
J'attaque une base oracle 9.

Quand je fait un oci_lob_read du pointeur du lob, le navigateur me sort un page not found.

Si quelqu 'un connait le fonctionnement ou si il y a une astuce...
merci

Petit nouveau ! | 4 Messages

05 févr. 2007, 16:27

Bonjour Thomas,

Je ne sais pas si tu es encore bloqué sur ce point, même comme j'ai eu le même problème il n'y a pas longtemps, et que j'ai trouvé une solution "convenable" pour mon cas d'utilisation (sans passer par des procédures stockées en PL/SQL).

Pour information, je fais cela avec ORACLE 10i en PHP 4.3.9 (donc pour utiliser en PHP5, il te faudra sûrement renommer les fonctions avec les vieilles règles de nommage en ajoutant les "_" (ex : remplacer ocifetcharray() par oci_fetch_array() )

Code : Tout sélectionner

$oraconnection = ocilogon($bdd_login,$bdd_password,$bdd_service); //juste un exemple où le champ DOCUMENTBLOB contient le fameux CLOB $maRequete = "SELECT ID,DOCUMENTBLOB FROM MATABLEDOCUMENT WHERE ID='33'"; $stmt = ociparse($oraconnection, $maRequete); ociexecute($stmt) or die ("Unable to execute query\n"); $i=0; while ( ocifetchinto($stmt,$row,OCI_NUM) ) { $row[1]->load(); $i++; } //Moi je stocke ma donnée dans un fichier TIFF mais tu peux faire ce que tu veux du tiens bien sûr $file = fopen("toto.tiff","w+"); fwrite($file,$row[1]->load()); fclose($file);

Voilà, j'espère que cela t'aidera un peu.
Bonne journée