Excerpts from Marco Vinicio Jimenez Rojas's message of mié dic 07 18:20:16 
-0300 2011:
> *estoy aprendiendo a hacer funciones en postgres y esto no me funciona, le
> paso el codigo de una funcion que recibe unos datos por parametro y quiero
> hacer un insert, necesito que me ayuden a corregir la funcion o por lo
> menos saber cuales son mis errores en esta funcion.* gracias.
> 
> create function ingresoPago(transportista integer, fecha date, montoT
> integer, montoV integer,
> montoP integer, estado integer) returns integer as
> $BODY$
> DECLARE viaje integer = 0;
> begin
>          viaje = insert into pago_viajes(transportista,
> fecha,monto_total,monto_vales,
>                      monto_pago, estado) values(transp,
> fecha,montoT,montoV, montoP,
>                        estado)returning idpago_viajes;
> 
>          return viaje;
> end;
> $BODY$
> language 'plpgsql';

Hum.  Llamaste "transportista" al primer argumento de la función, y
después trataste de pasar "transp" en la cláusula values.  Eso
obviamente está malo.  Pero más generalmente, ten cuidado con los
nombres que le das a las variables, para evitar usar nombres que sean
también nombres de columnas de las tablas que vas a usar.  Eso también
va a dar problemas.

Normalmente, cuando uno tiene una función que da error, debería pegar
además de la función, el mensaje de error que arroja.  Mínimo.  Y si se
pretende que otra persona depure el código, como cortesía debería darse
además las definiciones de las tablas involucradas, para ahorrar el
trabajo de aplicar ingeniería reversa el código.

-- 
Álvaro Herrera <alvhe...@alvh.no-ip.org>
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a