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" <ypen...@uci.cu>
To: "Néstor Seguí Martínez" <nesse...@gmail.com>
Cc: pgsql-es-ayuda@postgresql.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" <nesse...@gmail.com> 
Para: pgsql-es-ayuda@postgresql.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.
-
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