Eu tenho!!
NUNCA USE EXCETION WHEN OTHERS.... Voce está mascarando seu erro!!!
Tire isso e rode a function para saber qual erro REALMENTE acontece!
E, se tiver um tempinho, leia
http://mportes.blogspot.com/2005/07/boas-prticas-de-programao-when-others.html


On 5/30/07, Wilson Ribeiro <[EMAIL PROTECTED]> wrote:
>
>   Senhores da lista, boa tarde.
>
> me deparei hoje com um problema, que nunca tinha visto.
>
> criei uma function, e nela passo alguns parametros, dentro da function
> defini um cursor e um select para o mesmo, acontece o seguinte, qdo eu
> chamo
> essa function, passando os parametros normais, o select só retorna null,
> qdo
> fixo os dados no select, ele encontra e o result set vem com dados.
> abaixo está o código da function:
>
> create or replace function fn_valor_ap(v_num_ap in ap_valores.num_ap%TYPE,
> v_cod_empresa in ap_valores.cod_empresa%TYPE,
> v_valor_ap in ap_valores.valor%TYPE)
>
> return number is
> result number;
> oper varchar2(1);
>
> Valor Number;
> Codigo Number;
>
> cursor cur1 is
> select ap_valores.valor, ap_valores.cod_tip_val
> from ap_valores
> where ap_valores.cod_empresa = v_cod_empresa --// aqui se fica '01' ele
> acha
> dados
> and ap_valores.num_ap = v_num_ap --// aqui se fica 15846 ele acha dados
> and ap_valores.ies_versao_atual = 'S';
> begin
> result := v_valor_ap;
>
> open cur1;
>
> loop
> fetch cur1 into valor, codigo;
>
> exit when cur1%notFound;
>
> select ies_alt_val_pag
> into oper
> from tipo_valor
> where tipo_valor.cod_tip_val = codigo
> and tipo_valor.cod_empresa = v_cod_empresa;
>
> if oper = '+' then
> result := result + valor;
> else
> result := result - valor;
> end if;
> end loop;
>
> return(result);
> EXCEPTION
> WHEN OTHERS THEN
> RETURN(NULL);
> end fn_valor_ap;
>
> Alguém teria idéia do que se passa?, obrigado por qquer ajuda.
>
> - - - - - - - - - - -
> [ ]'s
>
> Wilson Ribeiro
> [EMAIL PROTECTED] <cpd%40gmengenharia.com.br>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>



-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle     -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


[As partes desta mensagem que não continham texto foram removidas]

Responder a