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