Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » PostgreSQL »

comando copy

Estas en el tema de comando copy en el foro de PostgreSQL en Foros del Web. hola que tal atodos, me encuetro haciendo el comando COPY con el fin de restaurar una data, lo hace muy bien pero tengo un problemita ...
  #1 (permalink)  
Antiguo 14/05/2007, 10:32
 
Fecha de Ingreso: enero-2003
Ubicación: Caracas
Mensajes: 439
Antigüedad: 21 años, 11 meses
Puntos: 0
comando copy

hola que tal atodos, me encuetro haciendo el comando COPY con el fin de restaurar una data, lo hace muy bien pero tengo un problemita que es cuando la data tiene latra Ñ y me dice el siguiente error:


ERROR: invalid byte sequence for encoding "UTF8": 0xd141
Estado SQL:22021
Sugerencias:This error can also happen if the byte sequence does not match the encoding expected by the server, which is controlled by "client_encoding".
Contexto:COPY empleado, line 187


no se porque dice ese error si la propiedades de la tabla la tengo de la siguiente forma:

CREATE DATABASE "xxxx"
WITH OWNER = postgres
ENCODING = 'LATIN1'
TABLESPACE = pg_default;


gracias de antemano.
  #2 (permalink)  
Antiguo 15/05/2007, 06:21
 
Fecha de Ingreso: agosto-2005
Ubicación: Mérida, Venezuela
Mensajes: 732
Antigüedad: 19 años, 3 meses
Puntos: 7
Re: comando copy

Saludos

Asumo que estás utilizando psql, entocnes, los locales los tienes en...?
__________________
Gracias de todas todas
-----
Linux!
  #3 (permalink)  
Antiguo 16/05/2007, 10:52
 
Fecha de Ingreso: agosto-2006
Mensajes: 179
Antigüedad: 18 años, 4 meses
Puntos: 0
Re: comando copy

La Ñ no es un caracter valido UTF-8, por lo tanto tienes que utilizar el LATIN1 de la instruccion COPY, revise la instruccion en el manual de postgresql, creo que tiene el ENCODING.

Saludos.
  #4 (permalink)  
Antiguo 27/03/2010, 12:56
 
Fecha de Ingreso: marzo-2007
Mensajes: 6
Antigüedad: 17 años, 9 meses
Puntos: 0
De acuerdo Respuesta: comando copy

Buenos lo que debes de hacer para que una vez exportado el archivo CSV con el comando COPY es lo siguiente:

EXECUTE 'SET CLIENT_ENCODING=''LATIN1''';
EXECUTE 'CREATE TEMP TABLE Tcsv AS ('||$2||')';
EXECUTE 'COPY Tcsv TO '''||$1||''' WITH CSV HEADER DELIMITER '';''';
DROP TABLE Tcsv;


Primeso debes darle el tipo de codificacion al cliente
y luego ejecutar el coy como ves en mi ejemplo...xD


Ahora bien si es para importar los datos has lo siguiente :
es un archivo .bat si estas en windows o lago parecido en linux cron algo asi

C:
CD\
CLS
CD "Archivos de Programa"
CD "Postgresql"
CD "8.2"
CD "bin"

SET PGPASSWORD=passserver
SET CLIENT_ENCONDING=8

psql.exe -h localhost -p 5432 -U postgres basedatos -c "COPY tabla(campos ) FROM 'rutadelarchivoasubir' WITH CSV HEADER DELIMITER ';'"


Y asi subes el archivo con tildes o Ñ etc.


Bye y mucha suerte...xD
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:40.