Ir para conteúdo
Fórum Script Brasil

amacedo

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre amacedo

amacedo's Achievements

0

Reputação

  1. Estou voltando a trabalhar com o PostgreSQL, depois de mais de 5 anos sem utilizar. Neste momento estou "intrigado" com o comportamento do PostgreSQL, relacionado a um campo "orgao", que tem valores "numéricos" alinhados à direita. Vejam a estrutura da tabela abaixo: bash-3.2$ psql -d pmgvprod psql (9.0.4) Type "help" for help. pmgvprod=# \d orgaos Table "pmgvschema.orgaos" Column | Type | Modifiers -------------+-----------------------+----------- orgao | character varying(4) | not null descricao | character varying(30) | sigla | character varying(12) | tipoorgao | character varying(2) | nivel | character varying(1) | responsavel | character varying(35) | cargo | character varying(2) | Indexes: "pk_orgaos_orgao_01" PRIMARY KEY, btree (orgao) Como disse, o campo "orgao" tem somente valores "numéricos" alinhados à direita, por exemplo, o valor 650 está armazenado como " 650" (branco, seis, cinco, zero): "orgao","descricao","datacad" " 100","Orgao 100",20110101 " 200","Orgao 200",20110102 " 300","Orgao 300",20110103 " 555","Orgao 555",20110104 " 650","Orgao 650",20110105 " 700","Orgao 700",20110106 "1000","Orgao 1000",20110107 "2000","Orgao 2000",20110108 "3000","Orgao 3000",20110109 "4000","Orgao 4000",20110110 O problema aqui é quando é feito um "SELECT" buscando todas as chaves maiores que " 650" (branco, seis, cinco, zero): SELECT ORGAO FROM ORGAOS WHERE ORGAO > " 650"; O PostgreSQL não está retornando os valores que deveria. Não vejo problemas em trabalhar com este campo como "numérico", mas fiquei intrigado o "porquê" do PostgreSQL ter este comportamento diferente dos outros bancos de dados testados. O banco está com o Encoding, Collation e Ctype conforme abaixo: postgres=# \q -bash-3.2$ psql -l List of databases Name | Owner | Encoding | Collation | Ctype | Acces s privileges -----------+----------+----------+------------------+------------------+----------------------- pmgvprod | postgres | LATIN1 | en_US.ISO-8859-1 | en_US.ISO-8859-1 | postgres | postgres | LATIN1 | en_US.ISO-8859-1 | en_US.ISO-8859-1 | template0 | postgres | LATIN1 | en_US.ISO-8859-1 | en_US.ISO-8859-1 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | LATIN1 | en_US.ISO-8859-1 | en_US.ISO-8859-1 | =c/postgres + | | | | | postgres=CTc/postgres (4 rows) Alguém já passou por isso? Alexandre
×
×
  • Criar Novo...