Funcion dias laborables
Publicado por Dani (5 intervenciones) el 22/06/2018 09:02:17
Hola a todos,
Estoy creando una función para que cuente días laborables y festivos entre dos fechas.
Pero me da el siguiente error:
Error(11,89): PLS-00405: subconsulta no permitida en este contexto
La funcion es:
Me da que el error está en el IF, pero no consigo ver el motivo. En la tabla RECOLS.DCALEN tengo todos los días festivo del año por codi (codigo postal) y fecha. Alguna ayuda?
Gracias, saludos!
Estoy creando una función para que cuente días laborables y festivos entre dos fechas.
Pero me da el siguiente error:
Error(11,89): PLS-00405: subconsulta no permitida en este contexto
La funcion es:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
CREATE OR REPLACE FUNCTION DIAS_LABORABLES
(fecha_inicio IN DATE, fecha_fin IN DATE, p_codi IN VARCHAR2)
RETURN NUMBER IS
vacaciones NUMBER;
numero_dias NUMBER := 0;
fecha_actual DATE;
BEGIN
IF fecha_fin >= fecha_inicio THEN
fecha_actual := fecha_inicio;
WHILE fecha_actual <= fecha_fin LOOP
IF TO_CHAR(fecha_actual,'DY') NOT IN ('SAT','SUN') and fecha_actual not in (select fecha from recols.dcalen where codi in (
select DISTINCT regexp_substr(p_codi,'[^:]+', 1, level) from RECOLS.DCAEN
connect by regexp_substr(p_codi, '[^:]+', 1, level) is not null))
THEN numero_dias := numero_dias + 1;
END IF;
fecha_actual := fecha_actual + 1;
END LOOP;
RETURN numero_dias - vacaciones;
ELSE
RETURN 0;
END IF;
END DIAS_LABORABLES;
/
Me da que el error está en el IF, pero no consigo ver el motivo. En la tabla RECOLS.DCALEN tengo todos los días festivo del año por codi (codigo postal) y fecha. Alguna ayuda?
Gracias, saludos!
Valora esta pregunta
0