| 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: | Whole Thread | Raw Message | 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 |