2010/9/27 Guillermo Villanueva <guillermo...@gmail.com>:
> 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 (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a