Então Jota dessa maneira seria uma function chamando outra function e nao uma dentro da outra correto?
Juliano fiz a alteração mas agora esta dando outro erro. ERRO: query has no destination for result data HINT: If you want to discard the results of a SELECT, use PERFORM instead. CONTEXT: PL/pgSQL function "cqlfn000_script_172rc1" line 23 at SQL statement ********** Erro ********** ERRO: query has no destination for result data SQL state: 42601 Dentro da minha segunda function tem um select count, pode ser isso? Abraços Cesar 2011/5/4 JotaComm <[email protected]> > Opa, > > É possível sim. > > De uma olhada no seguinte exemplo: > > CREATE FUNCTION soma(INTEGER,INTEGER) > > RETURNS INTEGER AS $$ > > SELECT $1+$2; > > $$ LANGUAGE SQL; > > CREATE FUNCTION multiplicacao(INTEGER,INTEGER,INTEGER) > > RETURNS INTEGER AS $$ > > DECLARE > > resultado_soma INTEGER NOT NULL:=soma($1,$2); > > BEGIN > > RETURN resultado_soma*$3; > > END; > > $$ LANGUAGE PLPGSQL; > > > SELECT multiplicacao(2,2,5); > > Em 4 de maio de 2011 15:47, Cesar Pedroso <[email protected]>escreveu: > > Bom mudanças de ultima hora de como executar os scripts estou analizando as >> possibilidades. >> >> Opa obrigado a ajuda vou testar aqui. >> >> >> On Wed, May 4, 2011 at 3:34 PM, Juliano Benvenuto Piovezan < >> [email protected]> wrote: >> >>> On Wed, May 4, 2011 at 3:17 PM, Cesar Pedroso <[email protected]>wrote: >>> >>>> >>>> CREATE OR REPLACE FUNCTION teste() >>>> RETURNS void AS >>>> $BODY$ >>>> BEGIN >>>> >>>> SET search_path = xxx; >>>> SET default_tablespace = xxx; >>>> >>>> CREATE OR REPLACE FUNCTION FUNC1() >>>> RETURNS void AS >>>> $BODY$ >>>> DECLARE >>>> vcount numeric(1); >>>> BEGIN >>>> >>>> END; >>>> $BODY$ >>>> LANGUAGE 'plpgsql'; >>>> select * from FUNC1(); >>>> drop function FUNC1(); >>>> >>>> RETURN; >>>> end; $BODY$ >>>> LANGUAGE 'plpgsql' VOLATILE; >>>> >>>> >>> Usando a notação $$, você está fechando a declaração do corpo da função >>> teste() na linha 9. Dê uma olhada sobre a notação $ neste link [1]. >>> >>> Assim deve funcionar: >>> >>> >>> CREATE OR REPLACE FUNCTION teste() >>> RETURNS void AS >>> $BODYTESTE$ >>> >>> BEGIN >>> >>> SET search_path = xxx; >>> SET default_tablespace = xxx; >>> >>> CREATE OR REPLACE FUNCTION FUNC1() >>> RETURNS void AS >>> $BODYFUNC$ >>> >>> DECLARE >>> vcount numeric(1); >>> BEGIN >>> >>> END; >>> $BODYFUNC$ >>> >>> LANGUAGE 'plpgsql'; >>> select * from FUNC1(); >>> drop function FUNC1(); >>> >>> RETURN; >>> end; $BODYTESTE$ >>> LANGUAGE 'plpgsql' VOLATILE; >>> >>> [1] >>> http://www.postgresql.org/docs/8.4/static/sql-syntax-lexical.html#SQL-SYNTAX-DOLLAR-QUOTING >>> >>> _______________________________________________ >>> pgbr-geral mailing list >>> [email protected] >>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral >>> >>> >> >> _______________________________________________ >> pgbr-geral mailing list >> [email protected] >> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral >> >> > > Abraços > -- > JotaComm > http://jotacomm.wordpress.com > > _______________________________________________ > pgbr-geral mailing list > [email protected] > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > >
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
