Récupération des données (curseur) d'une fonction oracle

Récupération des données (curseur) d'une fonction oracle - PHP - Programmation

Marsh Posté le 05-02-2009 à 18:08:02    

Bonjour,
je possède une fonction sous oracle, me retournant un curseur.
Veuillez trouver ci-dessous mon script PHP me servant à lire les données que me retourne cette fonction:

Code :
  1. $query = "BEGIN :resulta := pkg_boc.detail_facture(:xdate); END;";
  2. $curs = oci_new_cursor($oSql->connect("caisse" ));
  3. $stmt = oci_parse ($oSql->connect("caisse" ), $query);
  4. oci_bind_by_name($stmt, ":resulta", $curs, -1, OCI_B_CURSOR);
  5. oci_bind_by_name($stmt, ":xdate", $date, -1);
  6. oci_execute($stmt);
  7. oci_execute($curs);
  8. var_dump(oci_free_statement($stmt));
  9. var_dump($stmt);
  10. while($row = oci_fetch_array($curs)){
  11.  var_dump($row);
  12. }


 
Le problème est que lorsque j'exécute ce code voici ce que me retourne PHP:
resource(10) of type (oci8 statement)
resource(9) of type (oci8 statement)

 
PHP ne rentre pas dans le while.
J'ai lancé ma requête à la main sous oracle et celle-ci me retourne bien des résultats.
 
Comment puis-je faire pour récupérer les données retournées par cette fonction? Avez-vous une solution?
Merci


Message édité par jonath88 le 05-02-2009 à 18:09:34
Reply

Marsh Posté le 05-02-2009 à 18:08:02   

Reply

Marsh Posté le 06-02-2009 à 11:04:07    

Dans ce genre de cas, il est utile de tester la valeur retourné par oci_execute pour savoir si tout c'est bien passé.
Il est également utile de savoir pourquoi ça ne passe pas, quand oci_execute retourne "FALSE" et pour ça, oci_error offre une aide appréciable.
 
Si tu ne fais pas ça, alors tu te retrouves comme ici avec un "ça marche pas" qui ne sert à rien.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed