note 96517 added to function.oci-execute

From: Date: Wed, 03 Mar 2010 13:29:05 +0000
Subject: note 96517 added to function.oci-execute
Groups: php.notes 
Request: Send a blank email to php-notes+get-166557@lists.php.net to get a copy of this message
/******************************************************************** Autor: Sandino Nuñez Fecha: 16/03/2009 Descripción: Ejecuta un Stored Procedure de la base Oracle En $nombre_procedure se escribe el nombre del procedimiento: ej: "nombre_paquete.nombre_procedimiento" y en $parametros se pasa un array con los valores de los parametros que le deseamos pasar al procedure. Si se ejecuta con exito $error vale FALSE de lo contrario vale TRUE *********************************************************************/ function ejecutarProcedure ($usuario, $password, $nombre_procedure, $parametros, $conexion = FALSE) { $any_error = FALSE; $msg_error = ''; $error = ''; if (!$conexion){ $conexion = ocilogon($usuario, generarPass($usuario, $password), BD); if (!$conexion) { $msg_error = 'El usuario o la contrase&ntilde;a es incorrecto.'; $any_error = TRUE; }else{ $procedure= "BEGIN " . $nombre_procedure . "("; for($i=1; $i <= count($parametros); $i++){ $procedure .= ":param" . $i; if ($i < count($parametros)) $procedure .= ", "; } $procedure .= ");END;"; $id_sentencia = ociparse($conexion, $procedure); if (!$id_sentencia) { $error = oci_error($conexion); $msg_error = 'Error al procesar la modificaci&oacute;n'; $any_error = TRUE; } if (!$any_error){ for($i=1; $i <= count($parametros); $i++){ $valor = $parametros[$i]; $nombre="var".$i; $$nombre=$valor; $param = ":param".$i; if (!ocibindbyname($id_sentencia, $param, $$nombre, 256)){ $any_error = TRUE; $msg_erroy = 'Error al hacer bin'; break; } } if (!$any_error){ $resultado = ociexecute($id_sentencia); if (!$resultado) { $error = oci_error($id_sentencia); $msg_error = 'Error al realizar la modificaci&oacute;n'; $any_error = TRUE; } } } ocilogoff($conexion); } }else{ $procedure= "BEGIN " . $nombre_procedure . "("; for($i=1; $i <= count($parametros); $i++){ $procedure .= ":param" . $i; if ($i < count($parametros)) $procedure .= ", "; } $procedure .= ");END;"; $id_sentencia = ociparse($conexion, $procedure); if (!$id_sentencia) { $error = oci_error($conexion); $msg_error = 'Error al procesar la modificaci&oacute;n'; $any_error = TRUE; } if (!$any_error){ for($i=1; $i <= count($parametros); $i++){ $valor = $parametros[$i]; $nombre="var".$i; $$nombre=$valor; $param = ":param".$i; if (!ocibindbyname($id_sentencia, $param, $$nombre, 256)){ $any_error = TRUE; $msg_erroy = 'Error al hacer bin'; break; } } if (!$any_error){ $resultado = ociexecute($id_sentencia); if (!$resultado) { $error = oci_error($id_sentencia); $msg_error = 'Error al realizar la modificaci&oacute;n'; $any_error = TRUE; } } } } return array ($any_error, $msg_error); } Ejemplo De uso: En una base Oracle con un paquete llamado paqueteprueba y un stored procedure llamado carga se invocaria asi: list ($any_error,$msg_error) = ejecutarProcedure ($usuario_base, $pass_usuario, "paqueteprueba.carga", $parametros); Nota: $usuario_base y $pass_usuario es un usuario valido de la base con permiso para ejecutar el paquete elecciones y el procedure carga ---- Server IP: 69.147.83.197 Probable Submitter: 164.73.129.140 ---- Manual Page -- http://www.php.net/manual/en/function.oci-execute.php Edit -- https://master.php.net/note/edit/96517 Del: integrated -- https://master.php.net/note/delete/96517/integrated Del: useless -- https://master.php.net/note/delete/96517/useless Del: bad code -- https://master.php.net/note/delete/96517/bad+code Del: spam -- https://master.php.net/note/delete/96517/spam Del: non-english -- https://master.php.net/note/delete/96517/non-english Del: in docs -- https://master.php.net/note/delete/96517/in+docs Del: other reasons-- https://master.php.net/note/delete/96517 Reject -- https://master.php.net/note/reject/96517 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#166557) next »