La Web del Programador: Comunidad de Programadores
 
    Pregunta:  53406 - PROCEDIMIENTOS ALMACENADOS ORACLE DESDE PHP CON ADODB
Autor:  MARISOL ORTIZ
Buenas Tardes:

Estoy tratando de ejecutar una serie de procedimientos almacenados en Oracle desde Php y aún no lo logro.

Ya he realizado las pruebas desde el SQLPlus, y todo anda bien, pero a la hora de hacerlo desde el Php, no me funciona. Es importante anotar, que la conexión y todas las acciones sobre la Base de Datos la hago con la Clase AdoDB

Quedaría inmensamente agradecida con las personas que puedieran colaborarme.

Att:

MARISOL ORTIZ

  Respuesta:  MARISOL ORTIZ
Logré poner a funcionar el procedimientos desde php, a continuación un ejemplo:

//Ej Procedimiento Almacenado con 1 parametro de entrada y 2 de salida

$entrada='X';

//Sentencia sql:
$stmt = $DB->PrepareSP("begin prueba(:entrada,:salida1, :salida2); end;");

//Asignación de variable para cada parámetro:
$DB->InParameter($stmt,$entrada,'entrada');
$DB->OutParameter($stmt,$salida1,'salida1');
$DB->OutParameter($stmt,$salida2,'salida2');

//Ejecución del Procedimiento
$rta_Execute = $DB->Execute($stmt);

if($rta_Execute)
{
echo "salida1-->$salida1</br>";
echo "salida2-->$salida2</br>";
}
else
{
echo "Error!! Al ejecutar procedimiento</br>";
}

ATT:

MARISOL ORTIZ

  Respuesta:  Giacomo Orizzonte
Hola

Bueno la cadena a usar es la siguiente

ExecuteCursor($sql,$cursorName='rs',$parameters=false)

pero solo funciona si usas en la cadena de conexion oci8
$db = ADONewConnection("oci8");

y $rs queda como la respuesta.

yo lo he provado con Oracle 8i y funciona bien .

Saludos.