2012/6/19 Flavio Henrique Araque Gurgel <fla...@4linux.com.br>

>
> Em 19-06-2012 13:40, Glauco Torres escreveu:
> > Boa Tarde Pessoal,
> >
> > Criamos uma FUNCTION com o seguinte código:
> >
> > CREATE OR REPLACE FUNCTION public.atualizar_cbo (
> > "piFamilia" integer = 0,
> > "piCBO" integer = 0,
> > "psDescricao" text = ''::text
> > )
> > RETURNS boolean AS
> > $body$
> > DECLARE
> >    viCBO INTEGER;
> >
> > BEGIN
> > --  raise notice 'chegou aqui finalmente';
> >    if piCBO = 0 then
> > --    raise notice 'chegou aqui2';
> >      PERFORM * from glb.cbofamilia cbof where cbof.idcbofamilia =
> piFamilia;
> >      if not found then
> >        insert into glb.cbofamilia (idcbofamilia, descricao) values
> > (piFamilia, CAST(psDescricao AS VARCHAR));
> >      end if;
> >    else
> >      PERFORM * from glb.cbo cbo where cbo.idcbofamilia = piFamilia and
> > cbo.idcbo = piCBO;
> >      if not found then
> >        insert into glb.cbo (idcbofamilia, idcbo, descricao) values
> > (piFamilia, piCBO, CAST(psDescricao AS VARCHAR));
> >      end if;
> >    end if;
> >
> >    RETURN True;
> > END;
> > $body$
> > LANGUAGE 'plpgsql'
> > VOLATILE
> > CALLED ON NULL INPUT
> > SECURITY INVOKER
> > COST 100;
> >
> > Mais quando vamos fazer um SELECT... exemplo de SELECT
> >
> > select public.atualizar_cbo (2521,0,'ADMINISTRADORES');
> >
> > ele da o seguinte erro:
> >
> > ERROR:  column "picbo" does not exist
> > LINE 1: SELECT piCBO = 0
> >                 ^
> > QUERY:  SELECT piCBO = 0
> > CONTEXT:  PL/pgSQL function "atualizar_cbo" line 7 at IF
> >
> > Gostaria de saber se existe alguma coisa de errada na criação dessa
> > FUNCTION, se sim qual é o erro que estamos cometendo.
>
> Você declarou a variável piCBO entre aspas.
> Quando se usam aspas, a caixa é respeitada e a variável sempre terá de
> ser usada entre aspas.
>
> "piCBO" é diferente de piCBO
> picBO é igual a picbo que é igual a PICBO, ou seja, sem aspas, o
> PostgreSQL considera que é minúscula sempre.
>
> []s
>
> Flavio Henrique A. Gurgel
> Consultor e Instrutor 4Linux
> Tel: +55-11-2125-4747
> www.4linux.com.br
>
> _______________________________________________
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>


Flavio muito obrigado, o problema era esse mesmo ele estava ficando como
Case Sensitive...

dei REPLACE na FUNCTION dessa vez sem ( " ) funcionou perfeitamente

Muito Obrigado!

Att Torres
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a