Buenas tardes, tengo el siguiente SP:
Código SQL
[-]
SET TERM ^ ;
CREATE PROCEDURE PEDIR_CONTACTO_LEADS
RETURNS(
TELEFONO CHAR(9) CHARACTER SET ISO8859_1,
PRIORIDAD INTEGER,
FECHA_PROX_CONTACTO DATE,
HORA_PROX_CONTACTO TIME)
AS
BEGIN
SELECT FIRST 1 CAST (TELEFONO AS CHAR(9)), PRIORIDAD, FECHA_PROX_CONTACTO, HORA_PROX_CONTACTO
FROM MOVILES_POPUP
WHERE
((ID_CAMPANIA = 'LEADS' AND PRIORIDAD IS NOT NULL
AND FECHA_PROX_CONTACTO = CURRENT_DATE and HORA_PROX_CONTACTO >= CURRENT_TIME AND PRIORIDAD >= 2)
OR (ID_CAMPANIA = 'LEADS' AND PRIORIDAD IS NOT NULL AND FECHA_PROX_CONTACTO = CURRENT_DATE AND PRIORIDAD = 1))
AND PRIORIDAD <> 0
ORDER BY PRIORIDAD ASC, HORA_PROX_CONTACTO ASC
INTO :TELEFONO , PRIORIDAD, FECHA_PROX_CONTACTO, HORA_PROX_CONTACTO ;
UPDATE MOVILES_POPUP SET PRIORIDAD = 0 WHERE TELEFONO = :TELEFONO;
suspend;
END;^
SET TERM ; ^
El cual me selecciona el primer registro que cumpla esas condiciones y luego me lo tiene que actualizar, pero nada, he revisado el procedimiento he hecho un debug y cumple todo los requisitos pero no actualiza el procedimiento.
¿Algien sabe en que estoy fallando? Le estoy dando vuelta a lo mismo pero no se que falla. La BD es Firebird 2.5
Saludos.