From: | Adrian Misael Peña Montero <ampena(at)uci(dot)cu> |
---|---|
To: | Ing(dot) Yunior Bauta Pentón <ypenton(at)uci(dot)cu> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org, Néstor Seguí Martínez <nessemar(at)gmail(dot)com> |
Subject: | Re: Error al definir una función |
Date: | 2011-09-27 21:42:46 |
Message-ID: | 276636426.2446451317159766670.JavaMail.root@ucimail1.uci.cu |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
La clausula ROWS es un estimado del número de tuplas que va a devolver la función, este valor lo utiliza el planificador de consultas del PostgreSQL par la creación del plan de ejecución de la misma. Este valor nunca limita el numero de tuplas que devuelve la función.
Saludos
----- Original Message -----
From: "Ing. Yunior Bauta Pentón" <ypenton(at)uci(dot)cu>
To: "Néstor Seguí Martínez" <nessemar(at)gmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Sent: Tuesday, September 27, 2011 3:40:48 PM GMT -04:30 Caracas
Subject: Re: [pgsql-es-ayuda] Error al definir una función
El problema está en la línea ROWS ejecuta estó y listo. No retornarás como máximo 1000 filas solo una.
CREATE OR REPLACE FUNCTION srm_dame_num(text)
RETURNS integer AS
$BODY$
DECLARE
rec integer;
BEGIN
SELECT INTO rec relnatts FROM pg_class WHERE relname= $1;
RETURN rec;
END;
$BODY$
LANGUAGE plpgsql VOLATILE STRICT
COST 100;
ALTER FUNCTION srm_dame_num(text) OWNER TO postgres;
----- Mensaje original -----
De: "Néstor Seguí Martínez" <nessemar(at)gmail(dot)com>
Para: pgsql-es-ayuda(at)postgresql(dot)org
Enviados: Lunes, 26 de Septiembre 2011 9:24:45 GMT -04:30 Caracas
Asunto: [pgsql-es-ayuda] Error al definir una función
Hola, tengo un problema con la definición de la siguiente función
CREATE OR REPLACE FUNCTION srm_dame_num(text)
RETURNS integer AS
$BODY$
DECLARE
rec integer;
BEGIN
SELECT INTO rec relnatts FROM pg_class WHERE relname= $1;
RETURN rec;
END;
$BODY$
LANGUAGE plpgsql VOLATILE STRICT
COST 100
ROWS 1000;
ALTER FUNCTION srm_dame_num(text) OWNER TO postgres;
Pretendo que la función reciba como parámetro el nombre de la tabla y me devuelva en un integer el número de campos.
Pero al tratar de definir la función obtengo este mensaje de error
"ERROR: ROWS is not applicable when function does not return a set
SQL state: 22023"
El error 22023 corresponde a un INVALID PARAMETER VALUE
El caso es que no consigo averiguar donde está el posible error. ¿alguna ayuda?
Muchas gracias por vuestro tiempo.
From | Date | Subject | |
---|---|---|---|
Next Message | Juan Manuel Acuña Barrera | 2011-09-28 17:12:32 | Fwd: windows o linux |
Previous Message | guillermovil | 2011-09-27 20:42:35 | Re: particiones |