Por lo que recuerdo, debe especificar type
y maxlength
a oci_bind_by_name()
para las variables devueltas por el procedimiento.
Asumiendo :r
es el OUT
variable, intente:
oci_bind_by_name($stid, ":r", $r, 50, SQLT_CHR);
El siguiente código funciona para devolver un valor de un procedimiento de Oracle (Zend_Db_Adapter_Oracle versión):
$statement = $db->prepare('BEGIN oracle_procedure(:result); END;');
$statement->bindParam('result', $result, SQLT_CHR, 12);
$statement->execute();
echo $result;