Pessoal, boa tarde!! Estou com uma situação um tanto intrigante e não sei mais o que fazer para tentar achar o erro.
Ao executar a query abaixo, ela me retorna corretamente o valor "0" como resultado: select case when (v_diferencaferia >= 6) then -1 when (v_diferencaferia < 6) then 0 end case from (select sum(nvl(fi.nrdocumento,0)) v_diferencaferia from dim_funcionarios f, fat_fichaconduta fi, dim_ocorrencias o where fi.cdfuncionario_sk = f.cdfuncionario_sk and fi.cdocorrencia_sk = o.cdocorrencia_sk and fi.dtcompetencia = to_date('30/04/2013','DD/MM/YYYY') and fi.cdfuncionario_sk = 4053 and o.cdocorrencia = 204 group by f.cdfuncionario_sk) Porém, após "encapsular" a query em uma function, o valor retornado é sempre "-1", ou seja, um valor errado. Segue a function abaixo: create or replace FUNCTION SV_FLG_DIFERENCAFERIA (p_cdfuncionario_sk in integer, p_dtcompetencia in varchar) RETURN integer AS v_diferencaferia integer := 0; BEGIN -- apura se o colaborador teve diferenca de feria -- se o resultado é 0 (zero) quer dizer que o colaborador nao teve diferenca de feria abaixo de R$ 6,00 begin select sum(nvl(fi.nrdocumento,0)) into v_diferencaferia from dim_funcionarios f, fat_fichaconduta fi, dim_ocorrencias o where fi.cdfuncionario_sk = f.cdfuncionario_sk and fi.cdocorrencia_sk = o.cdocorrencia_sk and fi.dtcompetencia = to_date(p_dtcompetencia,'DD/MM/YYYY') and fi.cdfuncionario_sk = p_cdfuncionario_sk and o.cdocorrencia = 204 group by f.cdfuncionario_sk; exception when OTHERS then v_diferencaferia := 0; end; case when (v_diferencaferia >= 6) then v_diferencaferia := -1; when (v_diferencaferia < 6) then v_diferencaferia := 0; end case; return v_diferencaferia; END; Não sei mais o que fazer e ou o que validar. Se alguem puder me dar uma luz ficarei grato. Muito obrigado -- Att, Rafael HM Pereira Linux User Id: 360166 Skype: rafaelhmpereira MSN: rafael.henri...@gmail.com Blog: http://rafaelhmpereira.blogspot.com LinkedIn: http://br.linkedin.com/in/rafaelhmpereira (27) 9233-0734 / (27) 3328-4320 [As partes desta mensagem que não continham texto foram removidas]