2010/9/27 Guillermo Villanueva <[email protected]>:
> Hola gente como están?
> Nuevamente estoy renegando con COPY FROM
> Resulta que tengo un archivo detexto separado por tab utf8 sin BOM muy
> grande que al utilizarlo para ingresar datos en mi db a través de COPY FROM
> funciona correctamente y se ingresan todos los datos. (mas de 600mil líneas)
> Todo esto en un postgres 8.4 sobre windows 2000 server y sobre una base de
> datos con ENCODING = 'LATIN1'
> Si al mismísimo archivo, lo copio a un servidor postgres 8.4 sobre ubuntu
> server y sobre una base de datos tambien con ENCODING = 'LATIN1' me provoca
> el siguiente error:
> postg...@servernacer:/var/ftp/nacer/postgresql$ psql nacer
> psql (8.4.4)
> Type "help" for help.
> nacer=# copy nacer.historicotemp from
> '/var/ftp/nacer/postgresql/B10201008.UEC.TXT' null as ''
> nacer-# ;
> ERROR: value too long for type character varying(2)
> CONTEXT: COPY historicotemp, line 6503, column afidompiso: "3º"
> nacer=#
> La columna afidompiso está definida como varchar(2) y el dato que muestra es
> también de 2 . Si reviso el archivo en la línea 6503 tengo 2 caracteres y un
> tab. Aclaro, el copy from funcionó bien en el servidor windows.
Hiciste un
SET CLIENT_ENCODING = 'LATIN1';
Revisaste el encoding de la terminal de linux?
Probaste desde pgadmin3?
En psql, con \l que codificación te aparece?
Debe ser algún tema relacionado al juego de caracteres, a veces en
linux conviene convertir a utf8:
reingart=# \l
Listado de base de datos
Nombre | Dueño | Codificación
-----------+----------+--------------
reingart | reingart | LATIN1
reingart=# SET CLIENT_ENCODING = 'LATIN1';
SET
reingart=# create table a (a char(1));
CREATE TABLE
reingart=# insert into a values ('º');
ERROR: el valor es demasiado largo para el tipo character(1)
reingart=# SET CLIENT_ENCODING = 'UTF8';
SET
reingart=# insert into a values ('º');
INSERT 0 1
El con linux podés convertir el dump de una codificación a otra con iconv:
iconv -f LATIN1 -t UTF8 < entrada.sql > salida.sql
Eso me ha ayudado en ciertas ocasiones,
Sds
Mariano Reingart
http://www.arpug.com.ar
http://www.sistemasagiles.com.ar
http://reingart.blogspot.com
-
Enviado a la lista de correo pgsql-es-ayuda ([email protected])
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda