Ir para conteúdo
Fórum Script Brasil

luisil

Membros
  • Total de itens

    2
  • Registro em

  • Última visita

Sobre luisil

luisil's Achievements

0

Reputação

  1. 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
×
×
  • Criar Novo...