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