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