Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

OBTENER VARIABLE OUT DE STORE PROCEDURE (oracle) a traves de un script PHP

Estas en el tema de OBTENER VARIABLE OUT DE STORE PROCEDURE (oracle) a traves de un script PHP en el foro de Oracle en Foros del Web. GENTE LA COSA ES ASI: 1) TENGO ESTE STORED PROCEDURE (con 2 variables OUT): PROCEDURE get_module_trigger (pomodulo OUT VARCHAR2, poaccion OUT VARCHAR2) IS BEGIN DBMS_APPLICATION_INFO.READ_MODULE(pomodulo, ...
  #1 (permalink)  
Antiguo 13/03/2009, 11:54
 
Fecha de Ingreso: julio-2008
Mensajes: 208
Antigüedad: 15 años, 9 meses
Puntos: 5
OBTENER VARIABLE OUT DE STORE PROCEDURE (oracle) a traves de un script PHP

GENTE LA COSA ES ASI:
1) TENGO ESTE STORED PROCEDURE (con 2 variables OUT):

PROCEDURE get_module_trigger (pomodulo OUT VARCHAR2, poaccion OUT VARCHAR2) IS

BEGIN

DBMS_APPLICATION_INFO.READ_MODULE(pomodulo, poaccion);

IF pomodulo like '%SQL%' THEN
-- SQL*Plus
pomodulo := 'S';
END IF;

IF pomodulo like '%httpd%' THEN
-- Sistema Web de Elecciones
pomodulo := 'E';
END IF;

IF pomodulo NOT IN ('M', -- Cargas Masivas
'S', -- SQL*Plus
'E' -- Sistema de Elecciones
) THEN
pomodulo := 'X'; -- Desconocido
END IF;

END;

BEGIN
return;
END;

2) Si hago esto en un script PHP todo funciona bien:

$SQL = "BEGIN elecciones.sesiones.get_module_trigger(:modulo,:ac cion); END;";
$cur = ociparse($conexion,$SQL);
OCIBindByName($cur,":modulo", $mod, 100) or die ('No se pudo realizar el bind');
OCIBindByName($cur,":accion", $acc, 100) or die ('No se pudo realizar el bind');
OCIExecute($cur) or die ('No se pudo ejecutar');

3) SI HAGO echo $mod o echo $acc me devuelve lo que deberia ('E', 'X', o 'M')
PERO INTENTO HACER UN PROCEDIMIENTO QUE ME HAGA ESTO Y QUE RECIBA COMO PARAMETROS a $mod, $acc y no puedo.
Si alquien puede hacer este procedimiento que me avise...salu2
  #2 (permalink)  
Antiguo 13/03/2009, 12:18
 
Fecha de Ingreso: noviembre-2007
Ubicación: Argentina
Mensajes: 134
Antigüedad: 16 años, 5 meses
Puntos: 3
Respuesta: OBTENER VARIABLE OUT DE STORE PROCEDURE (oracle) a traves de un script PHP

Hola... estuve viendo tu procedimiento y lo rearme un poco...

Código HTML:
CREATE OR REPLACE PROCEDURE GET_MODULE_TRIGGER (POMODULO OUT VARCHAR2, POACCION OUT VARCHAR2) IS

BEGIN

DBMS_APPLICATION_INFO.READ_MODULE(POMODULO, POACCION);


SELECT CASE WHEN POMODULO LIKE '%SQL%' THEN 'S'
            WHEN POMODULO LIKE '%httpd%' THEN 'E'
            ELSE 'X' END
  INTO POMODULO
  FROM DUAL;

END;
/

Procedure created.
Luego ejecutas en el PL/SQL Developer, por ejemplo el siguiente comando:

Código HTML:
DECLARE

PO VARCHAR2(100);
AC VARCHAR2(100);

BEGIN

GET_MODULE_TRIGGER(PO, AC);

DBMS_OUTPUT.PUT_LINE(PO||' '||AC); 

END;
..... y funciona barbaro.... espero te sirva...

Saludos, Mario.
__________________
Y venció David al filisteo con honda y piedra; e hirió al filisteo y lo mató, sin tener David espada en su mano.
  #3 (permalink)  
Antiguo 13/03/2009, 18:54
Avatar de kikolice  
Fecha de Ingreso: marzo-2004
Mensajes: 1.510
Antigüedad: 20 años, 1 mes
Puntos: 7
Respuesta: OBTENER VARIABLE OUT DE STORE PROCEDURE (oracle) a traves de un script PHP

no entiendo bien el problema pero segun parece

PROCEDURE get_module_trigger (pomodulo OUT VARCHAR2, poaccion OUT VARCHAR2) IS

PERO INTENTO HACER UN PROCEDIMIENTO QUE ME HAGA ESTO Y QUE RECIBA COMO PARAMETROS a $mod, $acc y no puedo.

no es por que estas definiendo las dos variables como solamente OUT? si quieres que reciban valores declaralos como "IN OUT"
__________________
Blogzote.com :-) Mi blog
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 00:02.