Pelo que sei a diferença entre char e varchar é que o char vai ocupar todo
o espaço em disco, mesmo se vazio. Se um char de 50 caracteres for inserido
como vazio, ele irá ocupar em disco o espaço dos 50 caracteres.

Em um varchar isto não acontece, um varchar de 50 caracteres, preenchido
com 10 caracteres só ocupará o espaço relativo aos 10 caracteres em disco.

Para entender como os tipos do banco são mapeados para tua linguagem,dê uma
olhada no teu driver. Por exemplo, a tabela abaixo é o mapeamento do Npgsql
para o .NET

O que ela diz, por exemplo, é que o tipo int8 do postgresql será convertido
em tempo de execução no .NET para um Int64. E assim por diante.

Abraços

Supported data types

Npgsql supports the following data types:
Postgresql TypeNpgsqlDbTypeSystem.DbType Enum.Net System Type int8Bigint
Int64Int64 boolBooleanBooleanBoolean Box, Circle, Line, LSeg, Path, Point,
PolygonBox, Circle, Line, LSeg, Path, Point, PolygonObjectObject byteaBytea
BinaryByte[] dateDateDateDateTime, NpgsqlDate float8DoubleDoubleDouble int4
IntegerInt32Int32 moneyMoneyDecimalDecimal numericNumericDecimalDecimal
float4RealSingleSingle int2SmallintInt16Int16 textTextStringString timeTime
TimeDateTime, NpgsqlTime timetzTimeTimeDateTime, NpgsqlTimeTZ timestamp
TimestampDateTimeDateTime, NpgsqlTimestamp
timestamptzTimestampTZDateTimeDateTime,
NpgsqlTimestampTZ intervalIntervalObjectTimeSpan, NpgsqlInterval varchar
VarcharStringString inetInetObjectNpgsqlInet, IPAddress
(there is an implicity cast operator to convert NpgsqlInet objects into
IPAddress if you need to use IPAddress and have only NpgsqlInet) bitBit
BooleanBoolean, Int32
(If you use an Int32 value, odd values will be translated to bit 1 and even
values to bit 0) uuidUuidGuidGuidarray ArrayObjectArray
In order to explicitly use array type, specify NpgsqlDbType as an 'OR'ed
type: NpgsqlDbType.Array | NpgsqlDbType.Integer for an array of Int32 for
example.

2012/4/17 Marcelo Silva (IG) <marc...@ig.com.br>

>   Pessoal, olha eu denovo [image: Alegre]
> No momento eu trabalho com campo Text onde tenho textos propriamente dito.
> Estava olhando aqui no postgres que posso criar campos “character varying”
> onde não preciso colocar a quantidade de caracteres, presumo que ele
> trabalhe como um blob text na questão de quantidade de caractere.
> Qual seria o campo mais indicado pra trabalhar com textos (sem limite de
> caractere) ?
> Pergunto isso porque vi que no Delphi ele enxerga esses dois campos de
> forma diferente... o Text como “ftMemo” (ou blob)
> e o “character varying” como “WideString”
> Trabalhando com Text e UTF8 ele faz uma bagunça já com o “character
> varying” ele traz o texto normal
> Bem... eu acho que isso não deveria ocorrer, mas ocorre... agora estou
> pensando aqui... será que vou ter que transformar tuo em “character
> varying” ?
> Vai ser um trabalhÃo
>
>
>
>
> Marcelo Silva
> ------------------------------------------
> msn: marc...@ig.com.br
> Cel.: (11) 9693-4251
> Cel.: (11) 5250-1407
> Desenvolvedor Delphi, PHP, ASP
> Empresa: Perfil "Medicina e Segurança do Trabalho"
>
> _______________________________________________
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>


-- 
George R. C. Silva

Desenvolvimento em GIS
http://geoprocessamento.net
http://blog.geoprocessamento.net

<<wlEmoticon-smile[1].png>>

_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a