Adriano Espinoza de Oliveira escreveu:
> Estou migrando o banco da versão 8.0 para a versão 8.2.3 e sestou tento 
> problemas nas funções declaradas void e com retrun null no final.
> Eu tenho muitas assim e a versão 8.2.3 está dando erro na execução 
> delas, algum pode me dar um help?
> Abaixo vou colocar uma dessas funções como exemplo e tb o erro reportado 
> no log.
> Agradeço antecipadamente.
> Adriano Espinoza
> 
> ******************************************** função 
> ********************************************************************************
>  
> 
> CREATE OR REPLACE FUNCTION "public"."fn_marcachqx" (varchar, integer) 
> RETURNS "pg_catalog"."void" AS
> $body$
> declare
>   chq_origem    alias for $1;
>   chq_codigo    alias for $2;
> begin
> 
>   -- // cheque do atacado
>   if chq_origem = 'A' then
>     update
>       atc_cheques
>     set
>       status = 'X'
>     where
>       codigo = chq_codigo;
> 
>   -- // cheque do varejo
>   else
> 
>     update
>       var_recebimentos
>     set
>       transmitido = 'A'
>     where
>       codigo = chq_codigo;
>   end if;
> 
>   return null;
> end
> $body$
> LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
> 
> 
> ******************************************** erro no log 
> ********************************************************************************
>  
> 
> ERROR:  RETURN cannot have a parameter in function returning void at or 
> near "null" at character 406
> 


Do manual:
http://www.postgresql.org/docs/8.2/interactive/plpgsql-control-structures.html#PLPGSQL-STATEMENTS-RETURNING
"If you declared the function to return void, a RETURN statement can be 
used to exit the function early; but do not write an expression 
following RETURN."

Portanto utilize apenas "return" e não "return null".

[]s
Osvaldo

        

        
                
_______________________________________________________ 
Yahoo! Mail - Sempre a melhor opção para você! 
Experimente já e veja as novidades. 
http://br.yahoo.com/mailbeta/tudonovo/
_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
Antes de perguntar consulte o manual
http://pgdocptbr.sourceforge.net/

Para editar suas opções ou sair da lista acesse a página da lista em:
http://pgfoundry.org/mailman/listinfo/brasil-usuarios

Responder a