Bonjour,
J'ai une procédure qui me renvoie un SYS_REFCURSOR de 7000 enregistrements.
Depuis PHP j'ai un oci_fetch_array.
ça fonctionne mais ça n'affiche que 5250 enregistrements et je reçois :
Si je comprends bien il y a un dépassement de la taille mémoire !Warning: oci_fetch_array(): ORA-03146: Invalid buffer length for TTC field
ORACLE :
PHP :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 procedure users_list (refcur OUT SYS_REFCURSOR) AS BEGIN OPEN refcur for select id, first_name , last_name , username from v_users order by last_name; end users_list;
Merci pour votre aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 $stid_users = oci_parse($ora_conn, "BEGIN db.web_pkg.users_list(:rc); END;"); $refcur_users = oci_new_cursor($ora_conn); oci_bind_by_name($stid_users , ':rc', $refcur_users , -1, OCI_B_CURSOR); oci_execute($stid_users ); oci_execute($refcur_users ); while(($row_users = oci_fetch_array($refcur_users, OCI_ASSOC+OCI_RETURN_NULLS)) != false) { echo $row_users["ID"]."<br> "; }
Partager