Ir para conteúdo
Fórum Script Brasil

luisil

Membros
  • Total de itens

    2
  • Registro em

  • Última visita

Tudo que luisil postou

  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...