19/12/2008, 07:25
|
| | Fecha de Ingreso: noviembre-2008
Mensajes: 10
Antigüedad: 16 años Puntos: 0 | |
Llamada a procedimiento almacenado Oracle Hola buenos días a todos:
Estoy intentado hacer una prueba sencilla con PHP (oci8, adodb y un procedimiento almacenado de oracle) y no consigo que se ejecute correctamente. Os explico con más detalle:
El código PHP es el siguiente:
************************************************** *******************
<?php
//Crear Conexión:
//Incluir la clase que hace permite conexión a Oracle
include "adodb/adodb.inc.php";
$DB = ADONewConnection('oci8');
$DB->connectSID = true;
//Datos de conexion
$ip_servidor ="10.165.4.22"; //Sí Php y Oracle están en la misma máquina
//en caso contrario incluir la ip del servidor oracle
$user ="rlab";
$password ="rlab";
$sid ="sscc";
//Conexion
$conexion=$DB->Connect($ip_servidor, $user, $password, $sid);
echo "conexion--->$conexion";
//Sí se establece la conexión el resultado es 1
$stmt = $DB->PrepareSP("begin sp_ejemplo(:param_id); end;");
$DB->OutParameter($stmt,$rs,'param_id');
$DB->Execute($stmt);
if ($rs)
while ($arr = $rs->FetchRow()) {
echo $arr;
}
else
{
echo "El procedimiento almacenado no devuelve nada";
}
?>
************************************************** **************
El código del procedimiento almacenado es el siguiente:
create or replace
PROCEDURE sp_ejemplo( param_id out numeric ) AS
BEGIN
SELECT id INTO param_id FROM profesionales;
END sp_ejemplo;
************************************************** *********
Como podreis comprobar, es un ejemplo muy sencillo, el procedure es una simple select. Yo quiero coger el resultado de la select desde el código de PHP utilizando adodb, pero no me muestra nada, ni me da error ni nada de nada.
¿Pensais que tengo algo mal en el código PHP? ¿Pensais que me puede faltar algo en el procedimiento almacenado para indicarle que mande el resultado de líneas correspondientes?
Muchas gracias y un cordial saludo |