Foros del Web » Programando para Internet » PHP »

Oracle OCI8

Estas en el tema de Oracle OCI8 en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 27/09/2016, 02:20
 
Fecha de Ingreso: junio-2008
Mensajes: 42
Antigüedad: 15 años, 10 meses
Puntos: 3
Oracle OCI8

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.

Etiquetas: oracle, sql, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:43.