Será que não se pode usar isso em funções que retornam tipos?
Porque também testei um uma função mais simples e deu certo.

On 11/10/06, Osvaldo Rosario Kussama <[EMAIL PROTECTED]> wrote:
Jorge Vilela escreveu:
> Pessoal, há poucos dias postei uma duvida sobre como usar o nome do
> argumento da função como variável sem o uso de ALIAS FOR.
>
> Testei aqui mas não tive êxito
>
> Um exemplo de função:
>
> CREATE OR REPLACE FUNCTION "public"."testearg" ("Pusu_id" integer,
> "Pacao" varchar, "Ptip_doc_id" integer) RETURNS "public"."tipo_mensagem" AS
> $body$
> DECLARE
>        Flemb_id             INTEGER;
>        saida                public.tipo_mensagem;
>        logar                BOOLEAN;
> BEGIN
>      IF(Pacao='INSERIR')THEN
>         RETURN saida;
>      END IF;
> END;
> $body$
> LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
>
> Se rodo ela retorna o seguinte erro:
>
> ERROR:  coluna "pacao" não existe
> CONTEXT:  comando SQL "SELECT (Pacao='INSERIR')"
                          ^^^^^^^^^^^^^^^^^^^^^^^^
isto está estranho!

> PL/pgSQL function "testearg" line 6 at if
>
>


Veja este teste:

bdteste=# CREATE FUNCTION testearg(par1 integer, par2 varchar, par3
integer) RETURNS integer AS
bdteste-# $$
bdteste$# DECLARE
bdteste$#        mult             INTEGER;
bdteste$# BEGIN
bdteste$#      mult = 2;
bdteste$#      IF par2 = 'INSERIR' THEN
bdteste$#         RETURN mult*par1;
bdteste$#      ELSE
bdteste$#         RETURN -1*mult*par3;
bdteste$#      END IF;
bdteste$# END;
bdteste$# $$
bdteste-# LANGUAGE 'plpgsql';
CREATE FUNCTION
bdteste=#
bdteste=# SELECT testearg(1,'INSERIR',3);
  testearg
----------
         2
(1 registro)

bdteste=# SELECT testearg(2,'ALTERAR',4);
  testearg
----------
        -8
(1 registro)

[]s
Osvaldo


_______________________________________________________
Novidade no Yahoo! Mail: receba alertas de novas mensagens no seu celular. Registre seu aparelho agora!
http://br.mobile.yahoo.com/mailalertas/


_______________________________________________
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

_______________________________________________
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