Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-09-2003
Tanix Tanix is offline
Miembro
 
Registrado: may 2003
Ubicación: Currando... :-(
Posts: 53
Poder: 21
Tanix Va por buen camino
Talking Php y Oracle... Encontre Solución

Buenas a tod@s... Mi pregunta es sencilla, a ver si alguien me puede echar una mano que me estoy voviendo loco sin encontrar nada por la red... Alguien sabria decirme como llamar a Funciones y Procedimientos almacenados en Oracle (creados con PL/SQL claro) desde un script de php???... Se me ha ocurrido esto:
Cita:
$cl=conectar_oracle();

$sentencia=OCIParse($cl,"SELECT MI_FUNCION(...) FROM DUAL");

OCIExecute($sentencia);
...
...//COntrol de errores...
...

OCIFreeStatement($sentencia);
OCILogOff($cl);
Pero no estoy completamente seguro de que funcione corretamente... Bueno espero que alguien se haya encontrado con esto alguna vez y me pueda echar una mano... Gracias de antemano por sus respuestas... Un Saludo... Tanix.
__________________
La suerte favorece a una mente preparada...

Última edición por Tanix fecha: 01-10-2003 a las 13:02:32.
Responder Con Cita
  #2  
Antiguo 01-10-2003
Tanix Tanix is offline
Miembro
 
Registrado: may 2003
Ubicación: Currando... :-(
Posts: 53
Poder: 21
Tanix Va por buen camino
Bueno pues ya encontre la solucion...
Pa' quien le interese... Simplemente tenemos que introducir nuestra llamada al procedimiento entre BEGIN END;, me explico con un ejemplo:
Código PHP:
//Si se trata de un procedimiento...
$conn=conectar_oracle();

$sentencia=OCIParse($conn,"BEGIN 
                                    PACKUNO.EJECUTA(PARAMETROS) 
                                    END;"
);

OCIExecute($sentencia);
... 
...
//COntrol de errores... 
...

OCIFreeStatement($sentencia);
OCILogOff($conn); 
Si es una funcion:

Código PHP:
$conn=conectar_oracle();

 
$sentencia OCIParse($conn,
  
"BEGIN 
     :RESULTADO:=PACK_DOS.EJECUTA2(PARAMETROS) );
    END;"
);

  
/*OCIBindByName=Enlaza una variable PHP a un Placeholder de Oracle*/
  
OCIBindByName($sentencia":RESULTADO"$resultado255);

  
OCIExecute($sentencia);
... 
...
//COntrol de errores... 
...

OCIFreeStatement($sentencia);
OCILogOff($conn); 
Espero que le sirva a alguien... Saludos... Tanix.
__________________
La suerte favorece a una mente preparada...
Responder Con Cita
  #3  
Antiguo 02-10-2003
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Cool

Para los procedimientos almacenados también podes utilizar la clausula execute.

Execute NombreProcedure(Parametros);

Por supuesto... esto no funciona para funciones....

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 13:26:21.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi