Prodedimientos almacenados
Muy buenas, tengo un pequeño problema con los procedimientos almacenados usando sql dinamico, pego el procedimiento abajo:
Create Procedure sp_select_proveedores(IN vIdUsuario INTEGER(11),
IN vIdCompania INTEGER(11),
IN vActivos BIT)
BEGIN
DECLARE tipoUsuario VARCHAR(10);
DECLARE sentSQL VARCHAR(4000);
/*Obtenemos el tipo de usuario*/
Select tipo_usuario INTO tipoUsuario From usuarios Where id_usuario = vIdUsuario Limit 1;
/*Creamos el sql dinammico*/
SET @sentSQL = "Select * From proveedores Where id_compania = ? ";
IF strcmp(tipoUsuario, "Empleado") = 0 THEN
SET @sentSQL = CONCAT(@sentSQL, "And id_usuario_creador = ? ");
END IF;
IF vActivos = 1 THEN
SET @sentSQL = CONCAT(@sentSQL, "And activo_proveedor = 1 ");
END IF;
/*Preparamos la sentencia*/
Prepare stmt FROM @sentSQL;
/*Dependiendo del tipo de usuario reslizamosd una ejecucion de la sentencia*/
IF strcmp(tipoUsuario, "Empleado") = 0 THEN
EXECUTE stmt USING @vIdCompania, @vIdUsuario;
ELSE
EXECUTE stmt USING @vIdCompania;
END IF;
END
el problema es que me hace la sentencia preparada pero no devuelve registros, y debería de devolverlos, si alguien me puede echar una mano se lo agradederia
Subject
Views
Written By
Posted
Prodedimientos almacenados
3458
April 03, 2008 04:46AM
1603
April 03, 2008 06:25AM
1622
April 03, 2008 08:56PM
Sorry, you can't reply to this topic. It has been closed.
Content reproduced on this site is the property of the respective copyright holders.
It is not reviewed in advance by Oracle and does not necessarily represent the opinion
of Oracle or any other party.