Re: ERROR EN COMPILACION FUNCTION

From: "Fabio Arias" <fharias(at)gmail(dot)com>
To: Postgres <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: ERROR EN COMPILACION FUNCTION
Date: 2008-07-11 20:49:16
Message-ID: c1d7f0f90807111349k2408b5f2pf1a390268582f3bc@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Muy buenas tardes muchachos ya logre compilar la FUNCTIOn y crearla pero no
se como la puede ejecutar, alguno de uds me puede ayudar???

2008/7/11 Fabio Arias <fharias(at)gmail(dot)com>:

> Muy buenos dias muchachos, estoy empezando con la creacion de funciones y
> tengo este error y no se por que es?
>
> Si me pueden dar una mano para mejorarlo les agradecere mucho....
>
> === psql 1 ===
> psql:129: ERROR: syntax error at end of input
> LINEA 1: SELECT
>
> ########################################################################
> CREATE FUNCTION ANULAR_APUESTA(IDTRANSACCION INTEGER, COLILLA VARCHAR,
> ACEPTACION_AEL VARCHAR, IDUSUARIO_REG VARCHAR) RETURNS INTEGER AS $$
> DECLARE
> USUARIO "TSO"."USUARIO"%ROWTYPE;
> CUENTAUSUARIO "TSO"."CUENTA"%ROWTYPE;
> DISTRIBUIDOR "TSO"."CLIENTE"%ROWTYPE;
> CUENTADISTRIBUIDOR "TSO"."CUENTA"%ROWTYPE;
> PUNTODEVENTA "TSO"."CLIENTE"%ROWTYPE;
> TRANSACCION "TSO"."TRANSACCION"%ROWTYPE;
> SALDOFINAL NUMERIC(10,2);
> SALDOCOMISION NUMERIC(10,2);
> COMISIONPRODUCTODIS "TSO"."COMISION"%ROWTYPE;
> COMISIONPRODUCTOPDV "TSO"."COMISION"%ROWTYPE;
> COMISION NUMERIC(10,2);
> VALORCOMISION NUMERIC(10,2);
> IDTRANSACCION_ANULACION INTEGER;
> IDNOVEDAD INTEGER;
> BEGIN
> -- CONSULTAR TRANSACCION
> SELECT * INTO TRANSACCION FROM "TSO"."TRANSACCION" WHERE
> "TRAN_ID"=IDTRANSACCION;
> IF NOT FOUND THEN
> RAISE EXCEPTION 'NO EXISTE TRANSACCION %',IDTRANSACCION;
> RETURN;
> END IF;
> -- BUSCAR USUARIO DE TRANSACCION
> SELECT * INTO USUARIO FROM "TSO"."USUARIO" WHERE
> "USUA_ID"=TRANSACCION."USUA_ID";
> IF NOT FOUND THEN
> RAISE EXCEPTION 'NO EXISTE USUARIO DE TRANSACCION %',IDTRANSACCION;
> RETURN;
> END IF;
> SELECT * INTO CUENTAUSUARIO FROM "TSO"."CUENTA" WHERE
> USUARIO."CUEN_ID";
> IF NOT FOUND THEN
> RAISE EXCEPTION 'NO EXISTE CUENTA PARA USUARIO
> %',USUARIO."USUA_ID";
> RETURN;
> END IF;
> SELECT * INTO PUNTODEVENTA FROM "TSO"."CLIENTE" WHERE
> "CLIE_ID"=USUARIO."CLIE_ID";
> IF NOT FOUND THEN
> RAISE EXCEPTION 'NO EXISTE PUNTO DE VENTA PARA USUARIO
> %',USUARIO."USUA_ID";
> RETURN;
> END IF;
> SELECT * INTO DISTRIBUIDOR FROM "TSO"."CLIENTE" WHERE
> "CLIE_ID"=PUNTODEVENTA."CLIE_PADRE";
> IF NOT FOUND THEN
> RAISE EXCEPTION 'NO EXISTE DISTRIBUIDOR PARA PUNTO DE VENTA
> %',PUNTODEVENTA."CLIE_ID";
> RETURN;
> END IF;
> SELECT * INTO CUENTADISTRIBUIDOR FROM "TSO"."CUENTA" WHERE
> "CUEN_ID"=DISTRIBUIDOR."CUEN_ID";
> IF NOT FOUND THEN
> RAISE EXCEPTION 'NO EXISTE CUENTA PARA DISTRIBUIDOR
> %',DISTRIBUIDOR."CLIE_ID";
> RETURN;
> END IF;
>
> -- INSERTAR MOVIMIENTO DE REVERSO DE VENTA
> SALDOFINAL := CUENTAUSUARIO."CUEN_SALDO"+TRANSACCION."TRAN_VALOR";
>
> INSERT INTO "TSO"."MOVIMIENTOSCUENTA" (
> "CUEN_ID","TRAN_ID","TIMC_ID","MOCU_FECHAMOVIMIENTO",
> "MOCU_SOBREGIROACTUAL", "MOCU_SALDOACTUAL",
> "MOCU_SOBREGIRO","MOCU_SALDO", "MOCU_REGISTRADOPOR", "MOCU_VALOR")
> VALUES(
> CUENTAUSUARIO."CUEN_ID",IDTRANSACCION,13,now(),
> 0,SALDOFINAL,
>
> CUENTAUSUARIO."CUEN_SOBREGIRO",CUENTAUSUARIO."CUEN_SALDO",IDUSUARIO_REG,TRANSACCION."TRAN_VALOR");
>
> -- ACTUALIZAR EL SALDO DEL USUARIO
> UPDATE "TSO"."CUENTA" SET
> "CUEN_SALDO"="CUEN_SALDO"+TRANSACCION."TRAN_VALOR"
> WHERE "CUEN_ID"=CUENTAUSUARIO."CUEN_ID";
>
> -- BUSCAR COMISION LINEAL PDV
> SELECT * INTO COMISIONPRODUCTOPDV FROM "TSO"."COMISION" WHERE
> "USUA_ID"=USUARIO."USUA_ID" AND "PROD_ID"=TRANSACCION."PROD_ID"
> AND "TICO_ID"=2;
> IF NOT FOUND THEN
> COMISION := 0;
> ELSE
> COMISION := COMISIONPRODUCTOPDV."COMI_VALOR";
> END IF;
> VALORCOMISION := TRANSACCION."TRAN_VALOR"*(COMISION/100);
> SALDOCOMISION := SALDOFINAL;
> SALDOFINAL := SALDOFINAL-VALORCOMISION;
> -- INSERTAR MOVIMIENTO DE REVERSO DE COMISION
> INSERT INTO "TSO"."MOVIMIENTOSCUENTA" (
> "CUEN_ID","TRAN_ID","TIMC_ID","MOCU_FECHAMOVIMIENTO",
> "MOCU_SOBREGIROACTUAL", "MOCU_SALDOACTUAL",
> "MOCU_SOBREGIRO","MOCU_SALDO", "MOCU_REGISTRADOPOR", "MOCU_VALOR")
> VALUES(
> CUENTAUSUARIO."CUEN_ID",IDTRANSACCION,14,now(),
> 0,SALDOFINAL,
>
> CUENTAUSUARIO."CUEN_SOBREGIRO",SALDOCOMISION,IDUSUARIO_REG,VALORCOMISION);
> -- ACTUALIZAR EL SALDO DEL USUARIO
> UPDATE "TSO"."CUENTA" SET "CUEN_SALDO"="CUEN_SALDO"-VALORCOMISION
> WHERE "CUEN_ID"=CUENTAUSUARIO."CUEN_ID";
>
> -- BUSCAR COMISION LINEAL DIS
> SELECT * INTO COMISIONPRODUCTODIS FROM "TSO"."COMISION" WHERE
> "CLIE_ID"=DISTRIBUIDOR."CLIE_ID" AND "PROD_ID"=TRANSACCION."PROD_ID"
> AND "TICO_ID"=3;
> IF NOT FOUND THEN
> COMISION := 0;
> ELSE
> COMISION := COMISIONPRODUCTODIS."COMI_VALOR";
> END IF;
> VALORCOMISION := TRANSACCION."TRAN_VALOR"*(COMISION/100);
> SALDOFINAL := CUENTADISTRIBUIDOR."CUEN_SALDO"-VALORCOMISION;
> -- INSERTAR REVERSO COMISION DE DISTRIBUIDOR
> INSERT INTO "TSO"."MOVIMIENTOSCUENTA" (
> "CUEN_ID","TRAN_ID","TIMC_ID","MOCU_FECHAMOVIMIENTO",
> "MOCU_SOBREGIROACTUAL", "MOCU_SALDOACTUAL",
> "MOCU_SOBREGIRO","MOCU_SALDO", "MOCU_REGISTRADOPOR", "MOCU_VALOR")
> VALUES(
> CUENTADISTRIBUIDOR."CUEN_ID",IDTRANSACCION,15,now(),
> 0,SALDOFINAL,
>
> CUENTADISTRIBUIDOR."CUEN_SOBREGIRO",CUENTADISTRIBUIDOR."CUEN_SALDO",IDUSUARIO_REG,VALORCOMISION);
> -- ACTUALIZAR SALDO DE DISTRIBUIDOR
> UPDATE "TSO"."CUENTA" SET "CUEN_SALDO"="CUEN_SALDO"-VALORCOMISION
> WHERE "CUEN_ID"=CUENTADISTRIBUIDOR."CUEN_ID";
> --- TERMINADO EL ANULADO
> --- CREAR TRANSACCION DE ANULACION
> INSERT INTO "TSO"."TRANSACCION" (
> "TITR_ID", "PROD_ID", "USUA_ID", "TRAN_FECHA", "TRAN_VALOR",
> "TRAN_ESTADO", "TRAN_REGISTRADOPOR")
> VALUES (32, 2, IDUSUARIO_REG, now(), TRANSACCION."TRAN_VALOR", '1',
> IDUSUARIO_REG);
> SELECT currval('"TSO"."TRANSACCION_TRAN_ID_seq"') INTO
> IDTRANSACCION_ANULACION;
>
> -- INSERTAR NOVEDAD DE TRANSACCION
> INSERT INTO "TSO"."NOVEDADTRANSACCION"(
> "NOVE_ID", "TRAN_ID", "NOTR_IDTRANSACCION", "NOTR_OBSERVACION",
> "NOTR_REGISTRADOPOR")
> VALUES (5, IDTRANSACCIONANULACION, IDTRANSACCION, ACEPTACION_AEL,
> IDUSUARIO_REG);
> SELECT currval('"TSO"."NOVEDADTRANSACCION_NOTR_ID_seq"') INTO
> IDNOVEDAD;
> RETURN IDNOVEDAD;
> END;
> $$ LANGUAGE plpgsql;
> ########################################################################
>
> --
> Fabio Hernando Arias Vera
> Cel. 314 411 7776

--
Fabio Hernando Arias Vera
Cel. 314 411 7776

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Fabio Arias 2008-07-11 20:51:27 Re: ERROR EN COMPILACION FUNCTION
Previous Message Alvaro Herrera 2008-07-11 20:30:36 Re: pg_dump y pg_restore