Olá, Em 4 de maio de 2011 17:32, Cesar Pedroso <[email protected]> escreveu:
> Então Jota dessa maneira seria uma function chamando outra function e nao > uma dentro da outra correto? > Sim. A partir uma função você chama outra função e trabalha com o resultado dentro dela. Não é isso que você quer? Qual o seu objetivo? Posso estar enganado, mas se você usar uma função dentro de outra sem usar o resultado para algum procedimento você pode fazer executar seqüencialmente uma depois da outra. > > 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? > Neste caso você precisa usar o comando PERFORM em vez do comando SELECT. > > 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 > > Abraços -- JotaComm http://jotacomm.wordpress.com
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
