ORA-03146 : Invalid buffer length for TTC field
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 :
Citation:
Warning: oci_fetch_array(): ORA-03146: Invalid buffer length for TTC field
Si je comprends bien il y a un dépassement de la taille mémoire !
ORACLE :
Code:
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; |
PHP :
Code:
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> ";
} |
Merci pour votre aide.