Galera, beleza.. Como sou novo em SQL, gostaria de uma ajuda de vocês. Estou presisando executa um função direto num select ou vice versa. Esta função me traz a quantidade de dias úteis entre uma data, sendo que preciso pegar esta data numa tabela. Gostaria a ajuda de vocês pra saber como faço isso. Segue abaixo a função e o select da tabela. FUNÇÃO: DECLARE
V_DATA_INI DATE := TO_DATE('01/05/2009','DD/MM/YYYY');
V_DATA_FIM DATE := TO_DATE('31/05/2009','DD/MM/YYYY');
V_QT_DIAS_UTEIS NUMBER(10) := 0;
FUNCTION FUN_DIAS_UTEIS (P_DATA_INICIAL IN DATE,
P_DATA_FINAL IN DATE)
RETURN NUMBER
IS
v_dia_semana NUMBER(10) := 0;
v_dias_uteis NUMBER(10) := 0;
V_DDD VARCHAR2(2);
BEGIN IF to_number(TO_char( P_DATA_INICIAL , 'D' )) NOT IN (1,7)
THEN
v_dias_uteis := 1; -- Conto a própria data inicial, se não for sábado ou domingo
END IF;
FOR x in 1..( P_DATA_FINAL - P_DATA_INICIAL )
LOOP
v_dia_Semana := to_number(TO_char( P_DATA_INICIAL + x, 'D' ));
IF v_dia_semana NOT IN (1,7) -- 1,7 não somo sábado e domingo.
THEN
v_dias_uteis := v_dias_uteis + 1;
END IF;
END LOOP;
RETURN v_dias_uteis;
EXCEPTION
WHEN OTHERS THEN
raise_application_error(-20001,'Erro ao selecionar dias úteis: ' || SQLERRM );
END FUN_DIAS_UTEIS;
BEGIN V_QT_DIAS_UTEIS := FUN_DIAS_UTEIS (V_DATA_INI, V_DATA_FIM);
dbms_output.put_line('Qtd. Dias Úteis: ' || V_QT_DIAS_UTEIS);
END;
SELECT:
SELECT DDD, DATA_ABERTURA_TT, DATA_FECHAMENTO_TT
FROM SP39603 Desde já agradeço a ajuda. Att, Adalba