par
Rinaldi » 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
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 [b]ocifetcharray() [/b]par [b]oci_fetch_array() [/b])
[code]
$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);
[/code]
Voilà, j'espère que cela t'aidera un peu.
Bonne journée