Re: COPY FROM

From: Guillermo Villanueva <guillermovil(at)gmail(dot)com>
To: Horacio Miranda <hmiranda(at)gmail(dot)com>
Cc: pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: COPY FROM
Date: 2010-09-27 22:37:52
Message-ID: AANLkTimuMLnPPrOZin9ZCepeoVg2hnBjSYkkKv=Df+X7@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

No Horacio, al archivo de texto separado por tabuladores (UTF8 sin BOM) lo
obtengo con una pequeña aplicación desde un SQL Server 2000.

Saludos

~~~~~~~~~~~~~~~~
Guillermo Villanueva

El 27 de septiembre de 2010 18:21, Horacio Miranda <hmiranda(at)gmail(dot)com>escribió:

> 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 Alvaro Herrera 2010-09-27 22:38:35 Re: fatal out of shared memory postgres
Previous Message Alvaro Herrera 2010-09-27 22:30:51 Re: Problemas con campo OIDS.