X-Original-To: pgsql-sql-postgresql.org@postgresql.org Received: from localhost (wm.hub.org [200.46.204.128]) by postgresql.org (Postfix) with ESMTP id 408869FB3DE for ; Thu, 31 Aug 2006 11:22:21 -0300 (ADT) Received: from postgresql.org ([200.46.204.71]) by localhost (mx1.hub.org [200.46.204.128]) (amavisd-new, port 10024) with ESMTP id 31946-04-4 for ; Thu, 31 Aug 2006 14:22:17 +0000 (UTC) X-Greylist: delayed 00:21:33.721085 by SQLgrey- Received: from svr4.postgresql.org (svr4.postgresql.org [66.98.251.159]) by postgresql.org (Postfix) with ESMTP id 730C89FB3EA for ; Thu, 31 Aug 2006 11:13:20 -0300 (ADT) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.3 Received: from smtp4.netsite.com.br (200-233-202-020.static.netsite.com.br [200.233.202.20]) by svr4.postgresql.org (Postfix) with ESMTP id CB3D65AF8D5 for ; Thu, 31 Aug 2006 13:51:47 +0000 (GMT) Received: from lap2000 (unknown [200.158.116.44]) by smtp4.netsite.com.br (Postfix) with SMTP id 6EDA08344A2 for ; Thu, 31 Aug 2006 10:51:43 -0300 (BRST) Message-ID: <000c01c6cd04$98858bd0$2600a8c0@lap2000> From: "2000 Informatica" <2000info@netsite.com.br> To: "PGSQL" References: <55c095e90608310600y18d382f2l5cc43410466bbd79@mail.gmail.com> Subject: Re: ERROR: SELECT query has no destination for result data Date: Thu, 31 Aug 2006 10:51:43 -0300 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0009_01C6CCEB.72902CF0" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1437 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1441 X-Virus-Scanned: Maia Mailguard 1.0.1 X-Spam-Status: No, hits=1.143 tagged_above=0 required=5 tests=HTML_MESSAGE, SPF_FAIL X-Spam-Level: * X-Archive-Number: 200608/247 X-Sequence-Number: 26205 This is a multi-part message in MIME format. ------=_NextPart_000_0009_01C6CCEB.72902CF0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Ezequias, Declare a variavel numRegistros dentro da funcao e altere o SELECT p/ select count(id) INTO numRegistros from base.emissor_ponto_venda = where id =3D PontoVenda_Emissor;=20 q vai dar certo, OK ?? SPS 2000Info ----- Original Message -----=20 From: Ezequias Rodrigues da Rocha=20 To: pgsql-sql@postgresql.org=20 Sent: Thursday, August 31, 2006 10:00 AM Subject: [SQL] ERROR: SELECT query has no destination for result data Hi list, I have a function like this: Create OR REPLACE Function base.inserirPontos(char(1), varchar(255), = numeric(12,2), int8, int8, int8 ) returns int4 as=20 $$ declare Operacao alias for $1; Numero_nota alias for $2; Valor_nota alias for $3; PontoVenda_Emissor alias for $4; Cardpass alias for $5; Cx_Id alias for $6;=20 begin -- Validando par=E2metros passados na fun=E7=E3o if Operacao <> 'C' then return 1; else select count(id) as numRegistros from base.emissor_ponto_venda = where id =3D PontoVenda_Emissor;=20 if numRegistros =3D 0 then return 2; =20 else insert into base.pontos values (nextval('base.ponto_id'), = now(), Operacao, Numero_nota, Valor_nota, PontoVenda_Emissor, = CartaoId(Cardpass), Cx_id);=20 return 0; =20 end if;=20 end if; end $$ LANGUAGE 'plpgsql' And I am getting the following result when I try to insert using the = function: select base.inserirPontos('C', '123456789', 12.5, 1, 9877000000944005, = 104) ERROR: SELECT query has no destination for result data HINT: If you want to discard the results, use PERFORM instead. CONTEXT: PL/pgSQL function "inserirpontos" line 17 at SQL statement=20 What I did wrong ? Any suggestion is quite good please. ps:=20 --=20 = =3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D= -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Atenciosamente (Sincerely)=20 Ezequias Rodrigues da Rocha = =3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D= -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- A pior das democracias ainda =E9 melhor do que a melhor das ditaduras The worst of democracies is still better than the better of = dictatorships=20 http://ezequiasrocha.blogspot.com/=20 -------------------------------------------------------------------------= ----- No virus found in this incoming message. Checked by AVG Free Edition. Version: 7.1.405 / Virus Database: 268.11.7/434 - Release Date: = 30/8/2006 ------=_NextPart_000_0009_01C6CCEB.72902CF0 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
 
Ezequias,
 
Declare a variavel  = numRegistros=20 dentro da funcao e altere o SELECT p/
 
     select count(id) INTO numRegistros = from=20 base.emissor_ponto_venda where id =3D PontoVenda_Emissor;=20
 
q vai dar certo, OK ??
 
 
SPS
2000Info
 

----- Original Message -----
From:=20 Ezequias Rodrigues da = Rocha
Sent: Thursday, August 31, 2006 = 10:00=20 AM
Subject: [SQL] ERROR: SELECT = query has no=20 destination for result data

Hi=20 list,

I have a function like this:

Create OR REPLACE Function=20 base.inserirPontos(char(1), varchar(255), numeric(12,2), int8, int8, = int8 )=20 returns int4 as
$$declare    Operacao = alias for=20 $1;
    Numero_nota = alias for=20 $2;
    Valor_nota = alias for=20 $3;
    = PontoVenda_Emissor=20 alias for $4;
    Cardpass = alias for=20 $5;
    Cx_Id alias = for=20 $6; begin-- Validando par=E2metros = passados na=20 fun=E7=E3o
  if Operacao <> = 'C'=20 then
     = return=20 1;
   else     = select=20 count(id) as numRegistros from base.emissor_ponto_venda where id =3D=20 PontoVenda_Emissor;
     if = numRegistros=20 =3D 0 then
       =20 return 2;          =       = else
       =20 insert into base.pontos values (nextval('base.ponto_id'), now(), = Operacao,=20 Numero_nota, Valor_nota, PontoVenda_Emissor, CartaoId(Cardpass), = Cx_id);=20
       =20 return 0;  
     end = if;=20
  end if;end$$ LANGUAGE = 'plpgsql'And I am getting the following = result=20 when I try to insert using the function:


select base.inserirPontos('C', = '123456789', 12.5, 1,=20 9877000000944005, 104)


ERROR:  SELECT query has no = destination for=20 result data
HINT:  If you want to discard the = results,=20 use PERFORM instead.
CONTEXT:  PL/pgSQL function = "inserirpontos"=20 line 17 at SQL statement

What I did wrong ? Any suggestion is = quite=20 good please.

ps:

--=20 =
=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D= -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=
           &nb= sp;           &nbs= p;          Atenciosame= nte=20 (Sincerely)=20 =
           &nb= sp;           &nbs= p;Ezequias=20 Rodrigues da=20 = Rocha
=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-= =3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D= -=3D-
A=20 pior das democracias ainda =E9 melhor do que a melhor das = ditaduras
The worst=20 of democracies is still better than the better of dictatorships
http://ezequiasrocha.blogspot= .com/=20


No virus found in this incoming message.
Checked by AVG Free = Edition.
Version: 7.1.405 / Virus Database: 268.11.7/434 - Release = Date:=20 30/8/2006
------=_NextPart_000_0009_01C6CCEB.72902CF0--