From: | Adrian Misael Peña Montero <ampena(at)uci(dot)cu> |
---|---|
To: | Néstor Seguí Martínez <nessemar(at)gmail(dot)com> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Error al definir una función |
Date: | 2011-09-26 17:59:56 |
Message-ID: | 785314371.2015681317059996175.JavaMail.root@ucimail1.uci.cu |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Todo parece indicar que al consulta devuelve mas de una tupla, puedes corregir la consulta o la funcion, la funcion queadría:
CREATE OR REPLACE FUNCTION srm_dame_num(text)
RETURNS SET OFF integer AS $$
DECLARE
rec integer;
BEGIN
FOR rec IN SELECT relnatts FROM pg_class WHERE relname= $1
LOOP
RETURN NEXT rec;
END LOOP;
END;
$$ LANGUAGE plpgsql;
----- Original Message -----
From: "Néstor Seguí Martínez" <nessemar(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Sent: Monday, September 26, 2011 9:54:45 AM GMT -04:00 Georgetown
Subject: [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 | 2011-09-26 19:33:03 | Re: particiones |
Previous Message | Rodrigo Gonzalez | 2011-09-26 17:57:06 | Re: [pgsql-es-ayuda] Error al definir una función |