Re: COPY FROM

From: Horacio Miranda <hmiranda(at)gmail(dot)com>
To: Guillermo Villanueva <guillermovil(at)gmail(dot)com>
Cc: Mariano Reingart <reingart(at)gmail(dot)com>, pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: COPY FROM
Date: 2010-09-27 21:21:46
Message-ID: AANLkTik-m3fwe_Y=jDtN9KsDiWmt0O3KvhKCwrqWsHRo@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Solo una pregunta, es mi idea o estas haciendo un backup y respaldo a
mano ? (datos de forma selectiva?).

2010/9/28 Guillermo Villanueva <guillermovil(at)gmail(dot)com>:
> Mariano, muchísimas gracias por tu respuesta.
> Primero que nada te cuento que al ejecutar el COPY FROM desde pgadmin3
> funcionó correctamente!! no lo había hecho así por que la verdad que no
> tenía idea de donde iba a intentar tomar el archivo especificado.
> Muy bunas las pruebas que hiciste con el simbolito º , la verdad que estoy
> medio perdido con esto de las codificaciones , yo pondría todo en UTF8, pero
> el sistema que intento implementar tiene como requisito que la base esté en
> LATIN1 (maldita restricción).
> De nuevo gracias.
> Ah te mando el \l de mi server linux
> nacer=# \l
>                                   List of databases
>    Name    |  Owner   | Encoding |  Collation  |    Ctype    |   Access
> privileges
> -----------+----------+----------+-------------+-------------+-----------------------
>  nacer     | projekt  | LATIN1   | C           | C           |
>  postgres  | postgres | UTF8     | es_AR.UTF-8 | es_AR.UTF-8 |
>  template0 | postgres | UTF8     | es_AR.UTF-8 | es_AR.UTF-8 | =c/postgres
>                                                              :
> postgres=CTc/postgres
>  template1 | postgres | UTF8     | es_AR.UTF-8 | es_AR.UTF-8 | =c/postgres
>                                                              :
> postgres=CTc/postgres
>
> Saludos
>
> ~~~~~~~~~~~~~~~~
> Guillermo Villanueva
>
>
> El 27 de septiembre de 2010 14:24, Mariano Reingart <reingart(at)gmail(dot)com>
> escribió:
>>
>> 2010/9/27 Guillermo Villanueva <guillermovil(at)gmail(dot)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:
>> > postgres(at)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
>
>

--
Saludos,
Horacio Miranda Aguilera.

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Reynier 2010-09-27 21:29:28
Previous Message Perla 2010-09-27 21:04:15 insertar desde archivo un dato date que es vacio