Antonio Prado escreveu:
> Em Qui, 2008-11-13 às 08:50 -0200, Fernando Grassi de Oliveira escreveu:
>> nome do regsitro = nome da coluna certo?
>> ps.attname = nome da coluna
>
> Na forma abaixo, estou tendo retorno com registros e tabela repetidos.
> Devo utilizar group by ou pode ser aprimorado de outra forma ?
>
> select ps.tablename
> ,ps.attname
> ,pt.typname
> from pg_stats ps
> ,pg_attribute pa
> ,pg_type pt
> where schemaname='public'
> and ps.attname=pa.attname
> and pt.typelem=pa.atttypid
> and pt.typname='_varchar'
> order by ps.tablename
>
Não utilize a tabela do catálogo pg_stats para isso. Além disso você
precisa selecionar somente tabelas e atributos visíveis. Para isso, execute:
euler=# \d foo
Tabela "public.foo"
Coluna | Tipo | Modificadores
--------+-----------------------+---------------
a | integer |
b | character varying(10) |
c | text |
d | character varying(20) |
euler=# select n.nspname,c.relname,a.attname,format_type(a.atttypid,
a.atttypmod) as type from pg_namespace n, pg_class c, pg_attribute a
where n.oid = c.relnamespace and c.oid = a.attrelid and relkind = 'r'
and attnum > 0 and
euler-# nspname = 'public' and relname = 'foo' and
format_type(a.atttypid, a.atttypmod) ~ 'character varying';
nspname | relname | attname | type
---------+---------+---------+-----------------------
public | foo | b | character varying(10)
public | foo | d | character varying(20)
(2 registros)
--
Euler Taveira de Oliveira
http://www.timbira.com/
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral