Ok Jota, obrigado.
ficou assim essa parte.

PERFORM id_inscricao FROM teste
WHERE id_agenda = par2;

Uma pergunta: Essa minha função está tosca? não sou expert em pl estou indo
pela minha lógica e ao mesmo tempo estudando sobre.
Valeu






Em 1 de setembro de 2010 12:00, <[email protected]
> escreveu:

> Send pgbr-geral mailing list submissions to
>        [email protected]
>
> To subscribe or unsubscribe via the World Wide Web, visit
>
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
> or, via email, send a message with subject or body 'help' to
>        [email protected]
>
> You can reach the person managing the list at
>        [email protected]
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of pgbr-geral digest..."
>
>
> Tópicos de Hoje:
>
>   1. Re: RES: OFF TOPIC - Teste (Euler Taveira de Oliveira)
>   2. Problema com as inscrições nas listas pgbr-geral e pgbr-dev
>      (Leonardo Cezar)
>   3. Gerar id de inscricao por valor de parâmetro passado (Beto Lima)
>   4. Re: Gerar id de inscricao por valor de parâmetro passado
>      (Beto Lima)
>   5. Re: Gerar id de inscricao por valor de parâmetro passado
>      (JotaComm)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Wed, 01 Sep 2010 10:05:31 -0300
> From: Euler Taveira de Oliveira <[email protected]>
> Subject: Re: [pgbr-geral] RES: OFF TOPIC - Teste
> To: Comunidade PostgreSQL Brasileira
>        <[email protected]>
> Message-ID: <[email protected]>
> Content-Type: text/plain; charset=ISO-8859-1
>
> Leonardo Cezar escreveu:
> > Estamos investigando o que houve neste período para entender a origem
> > do problema e informamos pra voces assim que tivermos a resposta.
> >
> Um arquivo de configuração corrompido foi o problema. :( Portanto, alguns
> inscritos "desapareceram" e alguns não-inscritos "apareceram".
>
>
> --
>  Euler Taveira de Oliveira
>  http://www.timbira.com/
>
>
> ------------------------------
>
> Message: 2
> Date: Wed, 1 Sep 2010 10:08:15 -0300
> From: Leonardo Cezar <[email protected]>
> Subject: [pgbr-geral] Problema com as inscrições nas listas pgbr-geral
>        e pgbr-dev
> To: Comunidade PostgreSQL Brasileira
>        <[email protected]>
> Cc: Organização do PostgreSQL Brasil
>        <[email protected]>
> Message-ID:
>        <[email protected]>
> Content-Type: text/plain; charset=ISO-8859-1
>
> Sr(a)s,
>
> Há cerca de vinte dias tivemos problemas com um de nossos servidores
> espelho das listas (pgbr-geral e pgbr-dev), devido a reformulação que
> estamos fazendo com alguns servidores de cópia de segurança que
> conseguimos com uma parceria recente e estão hospedados fisicamente
> distante dos nossos servidores no Brasil.
>
> Uma restauração parcial da lista foi prejudicada e precisamos
> recuperar informações a partir dos logs.
>
> O resultado disto é que alguns usuários da lista, inscritos próximo
> deste período, podem não constar mais na lista de distribuição e
> outros que excluíram seus cadastros durante esses dias podem ter sido
> incluídos novamente.
>
> Medidas já foram tomadas para que não torne a acontecer.
>
> Pedimos desculpas pelo transtorno e certo de poder contar com a
> colaboração de todos no sentido de informar aos conhecidos que
> eventualmente tenham sido prejudicados com este incidente e q precisem
> refazer seu cadastro.
>
> Forte abraço!
>
> -Moderador
> --
> Leonardo Cezar
> http://www.aslid.org.br
> http://postgreslogia.wordpress.com
>
>
> ------------------------------
>
> Message: 3
> Date: Wed, 1 Sep 2010 10:31:14 -0300
> From: Beto Lima <[email protected]>
> Subject: [pgbr-geral] Gerar id de inscricao por valor de parâmetro
>        passado
> To: [email protected]
> Message-ID:
>        <[email protected]>
> Content-Type: text/plain; charset="iso-8859-1"
>
> Olá tenho uma dúvida e preciso criar uma função que retorne uma trigger.
> Gostaria da ajuda de alguém se possível
> A situação é a seguinte:
> Ex:
> Tabela teste;
> campos: id_inscricao integer, id_agenda integer.
>
> insert into teste (id_inscricao, id_agenda) values (1,1);
> insert into teste (id_inscricao, id_agenda) values (2,1);
> insert into teste (id_inscricao, id_agenda) values (3,1);
>
> insert into teste (id_inscricao, id_agenda) values (1,2);
> insert into teste (id_inscricao, id_agenda) values (2,2);
> insert into teste (id_inscricao, id_agenda) values (3,2);
>
> Notaram que o id_inscricao muda de acordo com o valor passado por id_agenda
> ?
> Quero que se a agenda for 1 então incremente o valor para o id_inscricao
> sequencialmente.
> Se for 2, a mesma coisa.
> Se for 3 ou 4 ou 5.... reinicie a contagem e comece do 1 novamente e assim
> por diante
>
> Obrigado
> -------------- Próxima Parte ----------
> Um anexo em HTML foi limpo...
> URL:
> http://listas.postgresql.org.br/pipermail/pgbr-geral/attachments/20100901/79c5459f/attachment.html
>
> ------------------------------
>
> Message: 4
> Date: Wed, 1 Sep 2010 11:40:09 -0300
> From: Beto Lima <[email protected]>
> Subject: Re: [pgbr-geral] Gerar id de inscricao por valor de parâmetro
>        passado
> To: [email protected]
> Message-ID:
>        <[email protected]>
> Content-Type: text/plain; charset="iso-8859-1"
>
> Fiz uma função mas está dando erro.
> ERROR:  query has no destination for result data
> HINT:  If you want to discard the results of a SELECT, use PERFORM instead.
>
> CREATE OR REPLACE FUNCTION gera_id_inscricao (par2 integer)
>  RETURNS integer AS
> $BODY$
> DECLARE
>        v_linha int4 := 0;
>
> BEGIN
>
>        SELECT id_inscricao FROM teste
>        WHERE id_agenda = par2;
>
>    GET DIAGNOSTICS v_linha = ROW_COUNT;
>
>        IF v_linha > 0 THEN
>        INSERT INTO teste (id_inscricao,id_agenda)
>        VALUES ((SELECT MAX(id_inscricao)+1 AS proximo from teste WHERE
> id_agenda = par2), par2);
>        ELSE
>                INSERT INTO teste (id_inscricao,id_agenda)
>        VALUES ((SELECT COALESCE(MAX(id_inscricao), 1) AS proximo from
> teste), par2);
>    END IF;
>
>    RETURN v_linha;
> END;
> $BODY$
>  LANGUAGE 'plpgsql' VOLATILE
>  COST 100;
>
> chamando ela:
>
> select  gera_id_inscricao (1)
>
> o que há de errado na função?
>
>
> --------------------------------------------------------------------------------------------------------------------
>
>
>
>
> Em 1 de setembro de 2010 10:31, Beto Lima <[email protected]> escreveu:
>
> > Olá tenho uma dúvida e preciso criar uma função que retorne uma trigger.
> > Gostaria da ajuda de alguém se possível
> > A situação é a seguinte:
> > Ex:
> > Tabela teste;
> > campos: id_inscricao integer, id_agenda integer.
> >
> > insert into teste (id_inscricao, id_agenda) values (1,1);
> > insert into teste (id_inscricao, id_agenda) values (2,1);
> > insert into teste (id_inscricao, id_agenda) values (3,1);
> >
> > insert into teste (id_inscricao, id_agenda) values (1,2);
> > insert into teste (id_inscricao, id_agenda) values (2,2);
> > insert into teste (id_inscricao, id_agenda) values (3,2);
> >
> > Notaram que o id_inscricao muda de acordo com o valor passado por
> id_agenda
> > ?
> > Quero que se a agenda for 1 então incremente o valor para o id_inscricao
> > sequencialmente.
> > Se for 2, a mesma coisa.
> > Se for 3 ou 4 ou 5.... reinicie a contagem e comece do 1 novamente e
> assim
> > por diante
> >
> > Obrigado
> >
>
>
>
> --
> Att.
> Beto Lima
> -------------- Próxima Parte ----------
> Um anexo em HTML foi limpo...
> URL:
> http://listas.postgresql.org.br/pipermail/pgbr-geral/attachments/20100901/21214cf7/attachment-0001.htm
>
> ------------------------------
>
> Message: 5
> Date: Wed, 1 Sep 2010 11:47:08 -0300
> From: JotaComm <[email protected]>
> Subject: Re: [pgbr-geral] Gerar id de inscricao por valor de parâmetro
>        passado
> To: Comunidade PostgreSQL Brasileira
>        <[email protected]>
> Message-ID:
>        
> <[email protected]<lk-n-yxqeu8r6dtoymknnpyjskq-a%[email protected]>
> >
> Content-Type: text/plain; charset="iso-8859-1"
>
> Olá,
>
> Em 1 de setembro de 2010 11:40, Beto Lima <[email protected]> escreveu:
>
> > Fiz uma função mas está dando erro.
> > ERROR:  query has no destination for result data
> > HINT:  If you want to discard the results of a SELECT, use PERFORM
> instead.
> >
> > CREATE OR REPLACE FUNCTION gera_id_inscricao (par2 integer)
> >   RETURNS integer AS
> > $BODY$
> > DECLARE
> >         v_linha int4 := 0;
> >
> > BEGIN
> >
> >         SELECT id_inscricao FROM teste
> >         WHERE id_agenda = par2;
> >
>
> O erro está aqui. Ou você usa um SELECT INTO ou substitui este SELECT pelo
> comando PERFORM.
>
> Não observei a lógica.
>
> >
> >     GET DIAGNOSTICS v_linha = ROW_COUNT;
> >
> >         IF v_linha > 0 THEN
> >         INSERT INTO teste (id_inscricao,id_agenda)
> >         VALUES ((SELECT MAX(id_inscricao)+1 AS proximo from teste WHERE
> > id_agenda = par2), par2);
> >         ELSE
> >                 INSERT INTO teste (id_inscricao,id_agenda)
> >         VALUES ((SELECT COALESCE(MAX(id_inscricao), 1) AS proximo from
> > teste), par2);
> >     END IF;
> >
> >     RETURN v_linha;
> > END;
> > $BODY$
> >   LANGUAGE 'plpgsql' VOLATILE
> >   COST 100;
> >
> > chamando ela:
> >
> > select  gera_id_inscricao (1)
> >
> > o que há de errado na função?
> >
> >
> >
> --------------------------------------------------------------------------------------------------------------------
> >
> >
> >
> >
> > Em 1 de setembro de 2010 10:31, Beto Lima <[email protected]> escreveu:
> >
> > Olá tenho uma dúvida e preciso criar uma função que retorne uma trigger.
> >> Gostaria da ajuda de alguém se possível
> >> A situação é a seguinte:
> >> Ex:
> >> Tabela teste;
> >> campos: id_inscricao integer, id_agenda integer.
> >>
> >> insert into teste (id_inscricao, id_agenda) values (1,1);
> >> insert into teste (id_inscricao, id_agenda) values (2,1);
> >> insert into teste (id_inscricao, id_agenda) values (3,1);
> >>
> >> insert into teste (id_inscricao, id_agenda) values (1,2);
> >> insert into teste (id_inscricao, id_agenda) values (2,2);
> >> insert into teste (id_inscricao, id_agenda) values (3,2);
> >>
> >> Notaram que o id_inscricao muda de acordo com o valor passado por
> >> id_agenda ?
> >> Quero que se a agenda for 1 então incremente o valor para o id_inscricao
> >> sequencialmente.
> >> Se for 2, a mesma coisa.
> >> Se for 3 ou 4 ou 5.... reinicie a contagem e comece do 1 novamente e
> assim
> >> por diante
> >>
> >> Obrigado
> >>
> >
> >
> >
> > --
> > Att.
> > Beto Lima
> >
> > _______________________________________________
> > pgbr-geral mailing list
> > [email protected]
> > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
> >
> >
>
> []s
> --
> JotaComm
> http://jotacomm.wordpress.com
> -------------- Próxima Parte ----------
> Um anexo em HTML foi limpo...
> URL:
> http://listas.postgresql.org.br/pipermail/pgbr-geral/attachments/20100901/c2aa6e46/attachment-0001.htm
>
> ------------------------------
>
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>
> Fim da Digest pgbr-geral, volume 21, assunto 1
> **********************************************
>



-- 
Att.
Beto Lima
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a