[Pgsql-ayuda] Otra pregunta sobre "Como obtengo la lista de las tablas y columnas existentes en la bd"

Edwin Quijada listas_quijada@hotmail.com
Fri, 07 Nov 2003 00:07:01 +0000


Aqui tioenes esta function es bastante util, lastima q no funcione.
Bueno lo que hace es que le pasas una tabla , el campo y el dato que quieres 
en ese campo y ella lo corta a la longitud que tenga ese campo.
Si tienes alguna duda puedes preguntarme.
Con esta puedes hacer un diccionario de datos.

CREATE FUNCTION cortar_char(name,name,varchar) RETURNS varchar AS '

DECLARE
     tabla ALIAS FOR $1;
     campo ALIAS FOR $2;
     dato ALIAS FOR $3;
     len int;
     data varchar;
     reg record;
BEGIN
      select into reg b.atttypmod
      from  pg_class a, pg_attribute b, pg_type c
      where a.relname=tabla
      and  b.attrelid=a.relfilenode
      and  b.attname=campo
      and b.attnum >0
      and b.atttypid = c.oid;
      len:=reg.atttypmod-4;
      data:=substring(dato from 1 for len);
      return upper(data);
END;'
LANGUAGE 'plpgsql';


*-------------------------------------------------------*
*-Edwin Quijada
*-Developer DataBase
*-JQ Microsistemas
*-809-747-2787
* " Si deseas lograr cosas excepcionales debes de hacer cosas fuera de lo 
comun"
*-------------------------------------------------------*





>From: "César A. Oré Vásquez" <oresistemas@yahoo.com>
>To: pgsql-ayuda@tlali.iztacala.unam.mx,Alvaro Herrera 
><alvherre@dcc.uchile.cl>
>Subject: Re: [Pgsql-ayuda] Otra pregunta sobre "Como obtengo la lista de 
>las tablas y columnas existentes en la bd"
>Date: Thu, 6 Nov 2003 13:36:57 -0600 (CST)
>
> > Puedes usar pg_attribute; attrelid es el OID de la
> > tabla, attnum es el
> > orden de las columnas (usa sólo las que tienen
> > attnum > 0); para
> > conseguir el tipo tienes que usar atttypid (OID del
> > tipo, en pg_type).
> > Mira la documentación de 'Catálogos del sistema', en
> > el 'Developer's
> > Handbook'.
>
>Gracias por tu ayuda, esta genial... lamentablemente
>no encuentro mucha de la informacion que me mencionas
>en el developers handbook... Seguire revisando.
>
>Si no es molestia alguien puede decirme como conseguir
>si tengo una columna varchar, la longitud del varchar?
>
>
>Por ejemplo, si tengo una columna varchar(10), en tipo
>de dato deberia obtener "varchar" (esto ya lo logre
>gracias a la ayuda) y como longitud del varchar
>"10"... Como obtengo esa longitud?
>
>
>
>
>=====
>CESAR-----------------------------------
>mailto://a19941608@pucp.edu.pe
>mailto://oresistemas@yahoo.com
>http://www.linuxperu.atope.net
>http://www.oresistemas.atope.net
>-------------------------------------------
>
>_________________________________________________________
>Do You Yahoo!?
>Información de Estados Unidos y América Latina, en Yahoo! Noticias.
>Visítanos en http://noticias.espanol.yahoo.com
>_______________________________________________
>Pgsql-ayuda mailing list
>Pgsql-ayuda@tlali.iztacala.unam.mx
>http://tlali.iztacala.unam.mx/mailman/listinfo/pgsql-ayuda

_________________________________________________________________
Great deals on high-speed Internet access as low as $26.95.  
https://broadband.msn.com (Prices may vary by service area.)