Vinicius A. Santos escreveu: >> Pela demonstração acima pode-se notar que no 8.2 a tabela temporária ficou >> com o varchar sem especificacao do tamanho e no 8.3 e 8.4 ficou certinho. > > Estranho, eu realizei o teste agora, apenas com a 8.3. Eu fiz uma visão com > o select que eu postei, então fiz o teste no psql com \d nesta visão. > O psql retornou o tipo "character varying(20)". > Porém o pgAdmin e a aplicação(em Delphi), o reconhecem como "character > varying", na mesma base 8.3. > > Já resolvemos o problema com o cast, mas queria entender o que houve. > Eu não entendi porque o tipo importa mas isso é um problema da aplicação (seja ela o PGAdmin ou Delphi) pois o PostgreSQL é capaz de retornar o tipo com o respectivo tamanho (se for o caso). Veja:
template1=# select version(); version --------------------------------------------------------------------------------------------------------------- PostgreSQL 8.0.21 on i686-pc-linux-gnu, compiled by GCC i686-pc-linux-gnu-gcc (GCC) 4.1.2 (Gentoo 4.1.2 p1.1) (1 registro) template1=# create table foo (a integer, b varchar(30), c char(10), template1(# d numeric(5,2)); CREATE TABLE template1=# \! cat /tmp/x SELECT a.attname, pg_catalog.format_type(a.atttypid, a.atttypmod) FROM pg_catalog.pg_attribute a WHERE a.attrelid = 'foo'::regclass AND a.attnum > 0 AND NOT a.attisdropped ORDER BY a.attnum template1=# \i /tmp/x attname | format_type ---------+----------------------- a | integer b | character varying(30) c | character(10) d | numeric(5,2) (4 registros) -- Euler Taveira de Oliveira http://www.timbira.com/ _______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral