Skip site navigation (1) Skip section navigation (2)

Re: RE: [pgsql-es-ayuda] Función SQL/PL en versión 7.4

From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: Sergio Villalba Moreno <svillalba(at)cherrytel(dot)com>
Cc: pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: RE: [pgsql-es-ayuda] Función SQL/PL en versión 7.4
Date: 2011-04-20 16:12:27
Message-ID: 1303315585-sup-15@alvh.no-ip.org (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
Excerpts from Sergio Villalba Moreno's message of jue abr 14 08:43:25 -0300 2011:

> Para ir probando (es un ejemplo, este procedimiento es incompleto y poco
> funcional) he creado esta función SQL/PL:

El primer error es que te faltan los ; al final de cada declaración de
variable:

> CREATE FUNCTION test(text, text, text, integer, integer) RETURNS text AS '
> DECLARE
> primeroMes ALIAS FOR $1;  -- 01/05/2011
> finalMes ALIAS FOR $2;  -- 01/06/2011
> mes ALIAS FOR $3; -- 5
> cobroMensual ALIAS FOR $4; -- 2
> cobroAnual ALIAS FOR $5; -- 3

El segundo es que tienes SELECT SELECT.

> BEGIN
> 
>   SELECT SELECT INTO f_forma_pago, f_cliente, f_cif, f_contrato, f_importe


Y esto:

> RETURN f_forma_pago || '':'' || f_cliente || '':'' || f_cif || '':'' ||
> f_contrato || '':'' || f_importe;

no sé qué diablos es.  Creo que deberías declarar la función con
parámetros OUT para cada valor que quieres retornar (debes asignar el
valor que quieres retornar a las variables OUT, y luego darle RETURN o
RETURN NEXT sin parámetros).  Si quieres retornar más de un registro,
usa RETURNS SETOF RECORD en el encabezado de declaración de la función y
RETURN NEXT.

> Errores no solucionados:
> 
> ERROR:  syntax error en o cerca de "finalMes"
> CONTEXT:  compile of PL/pgSQL function "test" near line 6

Esto es por el ; que falta en el bloque DECLARE.

-- 
Álvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>

In response to

pgsql-es-ayuda by date

Next:From: Jaime RiveraDate: 2011-04-20 16:14:17
Subject: Re: [pgsql-es-ayuda] Problema al compilar librería compartida
Previous:From: Miguel Angel Hernandez MorenoDate: 2011-04-20 16:10:35
Subject: Re: [pgsql-es-ayuda] Problema al compilar librería ?==?ISO-8859-1?Q?compartida

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group