Diferencia entre revisiones de «BD.FUNC.CEN FUNC MIEMBRO COLA»
(Página creada con «==Descripción== ==Parámetros de entrada== ===PAR_ID_EXTENSION=== INT ==Retornos== varchar(64) Retorna una lista de colas corporativas CEN_COLAS separ...») |
|||
Línea 1: | Línea 1: | ||
==Descripción== | ==Descripción== | ||
− | ==Parámetros | + | ==Parámetros== |
− | |||
− | |||
− | |||
− | |||
− | + | USE `nimitz`; | |
+ | |||
+ | DROP function IF EXISTS `nimitz`.`CEN_FUNC_MIEMBRO_COLA`; | ||
+ | |||
+ | DELIMITER $$ | ||
+ | |||
+ | USE `nimitz`$$ | ||
+ | |||
+ | CREATE DEFINER=`adminNimitz`@`%` FUNCTION `CEN_FUNC_MIEMBRO_COLA`( | ||
+ | |||
+ | PAR_ID_EXTENSION INT | ||
+ | |||
+ | ) RETURNS varchar(64) CHARSET utf8 | ||
+ | |||
+ | MODIFIES SQL DATA | ||
+ | |||
+ | DETERMINISTIC | ||
+ | |||
+ | BEGIN | ||
+ | |||
+ | DECLARE VAR_NOMBRE VARCHAR(32); | ||
+ | |||
+ | DECLARE VAR_EXTENSION VARCHAR(32); | ||
+ | |||
+ | DECLARE VAR_PRIORIDAD INT; | ||
+ | |||
+ | DECLARE VAR_COLAS VARCHAR(255); | ||
+ | |||
+ | DECLARE VAR_NO_HAY BOOLEAN; | ||
+ | |||
+ | DECLARE num_filas INT DEFAULT 0; | ||
+ | |||
+ | DECLARE SQL_CEN_COLAS_EXTENSIONES CURSOR for | ||
+ | |||
+ | select CC.C_NOMBRE,CE.C_NOMBRE,CCE.N_PRIORIDAD from CEN_COLAS_EXTENSIONES CCE | ||
+ | |||
+ | INNER JOIN CEN_COLAS CC ON CCE.ID_COLA=CC.ID | ||
+ | |||
+ | INNER JOIN CEN_EXTENSIONES CE ON CCE.ID_EXTENSION=CE.ID | ||
+ | |||
+ | where ID_EXTENSION=PAR_ID_EXTENSION; | ||
+ | |||
+ | DECLARE CONTINUE HANDLER FOR NOT FOUND | ||
+ | |||
+ | SET VAR_NO_HAY = TRUE; | ||
+ | |||
+ | SET VAR_COLAS = ""; | ||
+ | |||
+ | OPEN SQL_CEN_COLAS_EXTENSIONES; | ||
+ | |||
+ | select FOUND_ROWS() into num_filas; | ||
+ | |||
+ | bucle: LOOP | ||
+ | |||
+ | FETCH SQL_CEN_COLAS_EXTENSIONES INTO VAR_NOMBRE,VAR_EXTENSION,VAR_PRIORIDAD; | ||
+ | |||
+ | IF VAR_NO_HAY then | ||
+ | |||
+ | CLOSE SQL_CEN_COLAS_EXTENSIONES; | ||
+ | |||
+ | LEAVE bucle; | ||
+ | |||
+ | END IF; | ||
+ | |||
+ | IF VAR_PRIORIDAD IS NULL THEN | ||
+ | |||
+ | SET VAR_COLAS=CONCAT(VAR_COLAS,VAR_NOMBRE,"|SIP/",VAR_EXTENSION,";"); | ||
+ | |||
+ | ELSE | ||
+ | |||
+ | SET VAR_COLAS=CONCAT(VAR_COLAS,VAR_NOMBRE,"|SIP/",VAR_EXTENSION,"|",VAR_PRIORIDAD,";"); | ||
+ | |||
+ | END IF; | ||
+ | |||
+ | END LOOP bucle; | ||
+ | |||
+ | RETURN VAR_COLAS; | ||
+ | |||
+ | END$$ | ||
+ | |||
+ | DELIMITER ; |
Revisión actual del 14:43 12 nov 2021
1 Descripción
2 Parámetros
USE `nimitz`;
DROP function IF EXISTS `nimitz`.`CEN_FUNC_MIEMBRO_COLA`;
DELIMITER $$
USE `nimitz`$$
CREATE DEFINER=`adminNimitz`@`%` FUNCTION `CEN_FUNC_MIEMBRO_COLA`(
PAR_ID_EXTENSION INT
) RETURNS varchar(64) CHARSET utf8
MODIFIES SQL DATA
DETERMINISTIC
BEGIN
DECLARE VAR_NOMBRE VARCHAR(32);
DECLARE VAR_EXTENSION VARCHAR(32);
DECLARE VAR_PRIORIDAD INT;
DECLARE VAR_COLAS VARCHAR(255);
DECLARE VAR_NO_HAY BOOLEAN;
DECLARE num_filas INT DEFAULT 0;
DECLARE SQL_CEN_COLAS_EXTENSIONES CURSOR for
select CC.C_NOMBRE,CE.C_NOMBRE,CCE.N_PRIORIDAD from CEN_COLAS_EXTENSIONES CCE
INNER JOIN CEN_COLAS CC ON CCE.ID_COLA=CC.ID
INNER JOIN CEN_EXTENSIONES CE ON CCE.ID_EXTENSION=CE.ID
where ID_EXTENSION=PAR_ID_EXTENSION;
DECLARE CONTINUE HANDLER FOR NOT FOUND
SET VAR_NO_HAY = TRUE;
SET VAR_COLAS = "";
OPEN SQL_CEN_COLAS_EXTENSIONES;
select FOUND_ROWS() into num_filas;
bucle: LOOP
FETCH SQL_CEN_COLAS_EXTENSIONES INTO VAR_NOMBRE,VAR_EXTENSION,VAR_PRIORIDAD;
IF VAR_NO_HAY then
CLOSE SQL_CEN_COLAS_EXTENSIONES;
LEAVE bucle;
END IF;
IF VAR_PRIORIDAD IS NULL THEN
SET VAR_COLAS=CONCAT(VAR_COLAS,VAR_NOMBRE,"|SIP/",VAR_EXTENSION,";");
ELSE
SET VAR_COLAS=CONCAT(VAR_COLAS,VAR_NOMBRE,"|SIP/",VAR_EXTENSION,"|",VAR_PRIORIDAD,";");
END IF;
END LOOP bucle;
RETURN VAR_COLAS;
END$$
DELIMITER ;