2009/3/25 "I.N.T. - Programación" <[email protected]>
>
> Buenas tardes,
>
> He instalado PostgreSQL 8.3.6 bajo linux
>
> Cuando genero una nueva base de datos me da por defecto como codificado 
> SQL_ASCII
>
> Como trabajo en español lo cambio a LATIN1
>
> Genero una tabla del tipo:
>
> CREATE TABLE tratamientos
> (
>  id int4 DEFAULT nextval('"tratamientos_seq"'::text) NOT NULL,
>  tratamiento_generico varchar(200),
>  CONSTRAINT tratamientos_pkey PRIMARY KEY (id)
> ) WITH OIDS;
>
> E inserto un registro:
>
> INSERT INTO tratamientos (id, tratamiento_generico) VALUES (1, 'SEÑOR / 
> SEÑORA');
>
> Cuando genero una consulta del tipo:
>
> SELECT lower(tratamiento_generico) FROM tratamientos;
>
> El resultado del campo 'tratamiento_generico' es:
>
> seÑor / seÑora
>
> No pasa a minúsculas la Ñ...
>
> ¿Qué otro tipo de codificación necesitaría para mi base de datos lo haga 
> correctamente?
>
> He probado con SQL_ASCII, LATIN9, ... y nada!
>
> Gracias a todos,
>
> Luis
>
> --
> TIP 9: visita nuestro canal de IRC #postgresql-es en irc.freenode.net

Has probado con UTF8 ?
export LANG=es_ES.UTF8 como variable de ambiente;

createdb test -E UTF8
test=# INSERT INTO tratamientos (id, tratamiento_generico) VALUES (1,
'SEÑOR / SEÑORA');
INSERT 460128 1
test=# select * from tratamientos ;
 id | tratamiento_generico
----+----------------------
  1 | SEÑOR / SEÑORA
(1 fila)

test=# SELECT lower(tratamiento_generico) FROM tratamientos;
     lower
----------------
 señor / señora
(1 fila)

Yo lo probe y me funciono, mi ambiente de prueba es un gentoo con postgresql-8.3
xps ~ # psql -V
psql (PostgreSQL) 8.3.5
incluye soporte para edición de línea de órdenes

Uhm, en castellano bonito :D, espero que te sirva esta información.
--
Saludos,
Horacio Miranda Aguilera.
RedHat Certified Engineer
DBA Oracle - Large databases
(56 99) - 8841727
--
TIP 4: No hagas 'kill -9' a postmaster

Responder a