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