Re: Problema con PostgreSql 9.2 y Freetds

From: " René Romero Benavides" <ichbinrene(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Problema con PostgreSql 9.2 y Freetds
Date: 2013-04-26 23:15:37
Message-ID: 44110478.kIsIK3ooAN@beagle
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Dime por favor si entiendo bien : ¿quieren guardar datos que de origen están
codificados en latin1 a una base de datos que está configurada con codificación
utf-8?

Si es el caso pues, prueba por favor con esto:

ALTER ROLE elUsuario IN DATABASE laBaseDeDatos SET client_encoding = 'LATIN1'; ,
reinicia la conexión y prueba de nuevo.

Porque de otro modo, postgres no sabe cuál es la codificación de origen. O como te
sugerí anteriormente, antes de la carga (en la misma sesión) hay que hacer un SET
client_encoding = 'LATIN1';

Si no funciona, tendrías que hacer la conversión tú, usando iconv al vuelo por ejemplo.

El 26 de abril de 2013 17:56, René Romero Benavides <ichbinrene(at)gmail(dot)com[1]>
escribió:

Que yo sepa no ha cambiado la forma de trabajar con codificaciones.

1. Quizá sea el plperlu de la nueva versión ?
2. Prueba dando un SET client_encoding = 'LATIN1'; antes de la carga de datos.
3. Crea una base de datos así CREATE DATABASE test ENCODING 'LATIN1'; y carga ahí
los datos
4. puedes verificar la salida de diagonal inversa ele en las dos bases de datos (8.4 y
9.2)

Tenemos una instalación con PostreSQL 8.4 que conecta con u servidor SQL SERVER
que usa una aplicación propietaria para realizar importaciones de datos.
Usamos plperlu con freetds y no tenemos ningún problema de codificación. Hemos
instalado en la misma máquina linux un servidor postgres 9.2.4 para poder evaluar
un traspaso ( aprovechar las mejoras , la version que tenemos ya es la última de las
mantenidas) . En las pruebas que realizamos los datos nos llegan codificados de una
manera que desconocemos. Las bases de datos postgres estan codificadas con
UTF8.
Hemos probado las siguientes opciones sin exito, hemos especificado la codificación
en el fichero del freetds y luego intentar convertirla desde el codigo del postgres sin
exito. Hemos seteado el bytea_output a escape por si nos hacia incorrectamente las
conversiones en la 9, hemos probado con las configuraciones WIn152X , la base de
datos ms SQL esta en Latin1 en un principio. Pero todo ello sin exito.
Urko escribio:
A alguien se le ocurre que puede haber cambiado en la configuracion de postgresql
de la 8.4 a la 9.2 para que no funcione de la misma manera?

---------------------------------------
Urko Ellacuria
Responsable de sistemes de informació i comunicacions
7 i TRIA SA
urko(at)7itria(dot)cat[2]
http://www.7itria.cat[3]
93 682 10 43(ext 213)

Desde la Version 9.0 el Core Team esta trabajando con estandares como el
UTF8 por default sin embargo si podemos ejecutar en funcion a la Region las Bases
Bases de Datos en Latin1 tomando encuenta estos parametros esto ocurre en
esta nuevas Versiones

Ernesto Lozano


René Romero Benavides @iCodeiExist[4] @PgsqlMx[5]

Postgresql Tips en español para la comunidad de México e Hispanoamérica.
http://postgresql.org.mx[6]





René Romero Benavides @iCodeiExist[4] @PgsqlMx[5]

Postgresql Tips en español para la comunidad de México e Hispanoamérica.
http://postgresql.org.mx[7]

--------
[1] mailto:ichbinrene(at)gmail(dot)com
[2] mailto:urko(at)7itria(dot)cat
[3] http://www.7itria.cat/
[4] https://twitter.com/iCodeiExist
[5] https://twitter.com/PgsqlMx
[6] http://postgresql.org.mx/
[7] http://postgresql.org.mx

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Fernando Paz 2013-04-26 23:39:14 Re: Select sobre tabla con byte[] es lento
Previous Message Fernando Paz 2013-04-26 22:58:40 Re: Select sobre tabla con byte[] es lento