FUNCTION reserva_livre(p_inicio RESERVA.inicio%TYPE, p_fim RESERVA.fim%TYPE, p_mesa MESA_RESERVADA.id_mesa%TYPE)
RETURN NUMBER IS
v_retorno NUMBER;
v_temp NUMBER;
BEGIN
SELECT SUM(id_cliente) INTO v_temp FROM RESERVA R, MESA_RESERVADA MR
WHERE ((R.id = MR.id_reserva) AND (MR.id_mesa = p_mesa)
AND
((p_inicio >= inicio AND p_inicio < fim)
OR
(p_fim > inicio AND p_fim <= fim)
OR
(p_inicio < inicio AND p_fim > fim)));
IF (v_temp IS NOT NULL) THEN
v_retorno := 0;
ELSE
v_retorno := 1;
END IF;
RETURN v_retorno;
END reserva_livre; |