Re: ingnora delete y error en insert usando ingnora delete y error en insert usando pl/pgsql

From: viernes <v13rn35(at)gmail(dot)com>
To: Jaime Casanova <systemguards(at)yahoo(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: ingnora delete y error en insert usando ingnora delete y error en insert usando pl/pgsql
Date: 2004-12-27 16:13:09
Message-ID: 67f22d2704122708137940ce23@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Ok aqui va uno de los casos

CREATE OR REPLACE  FUNCTION prDepositosCxc(integer,integer) RETURNS
double precision AS '

DECLARE Codcxc      ALIAS FOR $1;
DECLARE Saldo      cxc.saldo%TYPE;
DECLARE Id         ALIAS FOR $2;
DECLARE Tipodoc    bancos_depositos.tipodoc%TYPE;
DECLARE Fecha      bancos_depositos.fecha%TYPE;
DECLARE Monto      bancos_depositos.montoaplicado%TYPE;
DECLARE Numdoc        bancos_depositos.numdoc%TYPE;
DECLARE Total        double precision;
     --    
   -- cursor para la tabla cxc
       --
          DECLARE Cxc_Cursor CURSOR FOR
          SELECT cxc.saldo
           FROM  cxc
          WHERE  cxc.codcxc=Codcxc;
       --
   -- cursor para la tabla bancos_depositos
       --    
          DECLARE Depositos_Cursor CURSOR FOR
          SELECT
bancos_depositos.tipodoc,bancos_depositos.montoaplicado,bancos_depositos.numdoc,bancos_depositos.fecha
          FROM bancos_depositos
          WHERE bancos_depositos.id=Id;
BEGIN
RAISE NOTICE ''BEGIN  SQL Procedural prDepositosCxc(integer,integer)'';
    OPEN Cxc_Cursor;
   FETCH Cxc_Cursor INTO Saldo;
   CLOSE Cxc_Cursor;
   OPEN Depositos_Cursor;
   FETCH Depositos_Cursor INTO Tipodoc,Monto,Numdoc,Fecha;
   CLOSE Depositos_Cursor;

 IF Saldo>Monto THEN
       Total=Saldo-Monto;
       END IF;
   IF Monto=Saldo THEN
       Total=0;
       END IF;
  IF Monto>Saldo THEN
       Total=0;
       Monto=Saldo;
       END IF;
   RAISE NOTICE ''Total=% '',Total;
   RAISE NOTICE ''saldo=% '',Saldo;
   RAISE NOTICE ''montoaplicado=% '',Monto;

--- Aqui esta el error
   INSERT INTO movimientoscxc
(tipodoc,monto,numdoc,codcxc,total,fecha) VALUES
(Tipodoc,Monto,Numdoc,Codcxc,Total,Fecha);  

RETURN Total;
END;
' LANGUAGE plpgsql;

Este es el error

Error:NOTICE:  BEGIN  SQL Procedural prDepositosCxc(integer,integer)
NOTICE:  Total=123192
NOTICE:  saldo=123213
NOTICE:  montoaplicado=21
ERROR : ERROR:  syntax error at or near "$1" at character 30
CONTEXT:  PL/pgSQL function "prdepositoscxc" line 52 at SQL statement
SELECT prDepositosCxc('2','5');

On Sat, 25 Dec 2004 11:07:30 -0600 (CST), Jaime Casanova
<systemguards(at)yahoo(dot)com> wrote:
> --- viernes <v13rn35(at)gmail(dot)com> escribió:
> >
> > Soy nuevo en la lista asi que antes un saludo
> > cordial a todos
>
> Saludos, sientete bienvenido.
>
> >
> > Tengo problemas con funciones pl/pgsql, resulta que
> > cuando son grandes (mas de 6 lineas) me ignora
> > sentencias de DELETE o UPDATE sin mandar
> > errores ni warning ni nada o aveces jalan aveces no.
>
> No, esas cosas no pasan. Probablemente estas haciendo
> algo mal en los deletes o updates. Para poder ayudarte
> seria bueno que pasaras las sentencias que dices no se
> ejecutan para verlas.
>
> >
> > otra es que no puedo hacer siempre insert asi
> > insert into mitabla (campo1, campo2) values ($2,$3);
> >
> > porque me manda error en $1
> > pero si lo hago insert into mitabla values ($2,$3);
> > si funciona.
>
> estas seguro que escribistes bien los nombres de los
> campos? Otra vez te dire eso no ocurre.
>
> >
> > Estoy usando postgres 7.4.6 y 8 rc1
> >
>
> Especialmente si estas usando la ultima version
> oficial, y tampoco en la version 8rc1 (aunque aun es
> beta lo he usado y se que esa parte funciona de
> maravilla).
>
> > gracias
> >
>
> De nada. Recuerda pasar la funcion o las sentencias
> que no te estan funcionando para ayudarte a
> corregirlas.
>
> Atentamente,
> Jaime Casanova
>
> PD: envia la respuesta a la lista para que otros te
> puedan ayudar, no cometas el error de enviarlo solo a
> mi correo.
>
> _________________________________________________________
> Do You Yahoo!?
> Información de Estados Unidos y América Latina, en Yahoo! Noticias.
> Visítanos en http://noticias.espanol.yahoo.com
>
> ---------------------------(end of broadcast)---------------------------
> TIP 5: ¿Has leído nuestro extenso FAQ?
>
> http://www.postgresql.org/docs/faqs/FAQ.html
>

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jaime Casanova 2004-12-27 16:57:45 Re: ingnora delete y error en insert usando ingnora delete y error en insert usando pl/pgsql
Previous Message Eduardo A. Diaz Fuentes 2004-12-27 15:59:17