Re: nombre de tabla como parametro

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/

In response to

Browse pgsql-es-ayuda by date

  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