From: | Alejandro Gasca <agasca(at)yahoo(dot)com> |
---|---|
To: | Richard Rossel <henhiskan(at)gmail(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: nombre de tabla como parametro |
Date: | 2006-11-13 15:35:35 |
Message-ID: | 20061113153535.806.qmail@web34307.mail.mud.yahoo.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
--- Richard Rossel <henhiskan(at)gmail(dot)com> escribió:
> Hola lista,
> soy nuevo aqui, y les tengo un problemilla que quisiera que me
> ayudaran a resolverlo :)
> Estoy haciendo una funcion donde quiero pasar el nombre de la tabla
> como argumento, tipo
> SELECT haceralgo(nombredetabla);
>
> He tratado con :
> CREATE FUNCTION haceralgo(varchar) RETURNS integer AS $$
> DECLARE
> nombre_tabla ALIAS FOR $1;
> ...
>
> pero cuando escribo una consulta (dentro de la funcion) tipo:
> SELECT a, b, c FROM nombre_tabla;
>
> y cargo la funcion, postgres alega :
> ERROR: syntax error at or near "$1" at character 70
>
> existe alguna forma de hacer eso, o siempre tengo que especificar el
> nombre de la tabla
CREATE OR REPLACE FUNCTION ejem_num_registros(nom_tabla text)
RETURNS int4 AS
$BODY$DECLARE
cuantos int4;
cadena_ejecutar text;
BEGIN
cadena_ejecutar := 'select count(*) from "' || nom_tabla || '"';
EXECUTE cadena_ejecutar INTO cuantos;
return cuantos;
END$BODY$
LANGUAGE 'plpgsql' VOLATILE;
espero te sirva (seccion del manual 36.6.5)
Alejandro
__________________________________________________
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
Regístrate ya - http://correo.espanol.yahoo.com/
From | Date | Subject | |
---|---|---|---|
Next Message | mperezj | 2006-11-13 17:14:57 | problemas con conexion |
Previous Message | Alvaro Herrera | 2006-11-13 14:49:28 | Re: nombre de tabla como parametro |