Buenos días a todos.
Llevo varios días intentando resolver siguiente problema sin exito.
Tengo que llamar a una procedure de Oracle con PHP y utilizo la libreria Oracle OCI8 ya que con PDO no se puede.
La invoco bien pasandole parametros correctamente (se ejecuta)
Primero es un integer y otro es un oci_new_collection de una tabla que existe
$sql = "BEGIN
XXDEV_WS_PAYMENT.GETPAYMENTDATAPRODUCT(
:LEADID,
:RATES,
:PAYMENTSFRACCIONADO,
:P_ERROR);
END;";
$stmt = oci_parse($conn,$sql);
$leadid = 123;
$rates = 0;
$paymentsfraccionado = oci_new_collection($conn, "XXDEV_WS_PRODUCTPAYMENTS");
$p_error = "";
// Defino los datatipos
oci_bind_by_name($stmt,':LEADID',$leadid);
oci_bind_by_name($stmt,':RATES', $rates, -1, SQLT_INT);
oci_bind_by_name($stmt,':PAYMENTSFRACCIONADO', $paymentsfraccionado, -1, SQLT_NTY);
oci_bind_by_name($stmt,':P_ERROR', $p_error, -1, SQLT_CHR);
//Ejecuto
$result = oci_execute($stmt);
EL resutado de primeros 2 parametros bien
echo "<pre>".var_dump($rates)."</pre>"; //devuelve lo que toca
El problema es el parametro $paymentsfraccionado que es una colección
echo "<pre>".var_dump($paymentsnofraccionado)."</pre>";
Me devuelve
PAYMENTSFRACCIONADO: OCI-Collection Object
(
[collection] => Resource id #4
)
No tengo modo de acceder a este Resource id #4
El $paymentsnofraccionado->size() devuelve 4 (que es correcto) pero al intentar acceder a cualquier elemento este me devuelve un valor vacio
echo "<Pre>".print_r($paymentsfraccionado->getElem(1), true)."</pre>"; //devuelve null
Como puedo sacar los valores del Resource id #4? Como recojo el valor de un Resource? No de un int, bool o object que funcionan bien.
Gracias a todos por adelantado.