Em 19 de outubro de 2012 11:13, Aguiar Magalhaes
<[email protected]> escreveu:
> Pessoal,
> Estou tentando importar um arquivo texto com cerca de 62.000 linhas para uma 
> tabela, utilizando o comando copy.
> Está acusando o seguinte erro:
>
> ERRO: sequência de bytes é inválida para codificação "UTF8": 0x90
> SQL state: 22021
> Context: COPY aves, linha 3173.
>
> Não existe nenhum caractere especial na linha. Eu até já retirei a linha e o 
> erro propaga para apróxima linha.
>
> Existe algum limite para o tamanho do arquivo texto a ser importado ?
> Existe algum limite para o númeto de linhas do arquivo texto ?

hum... Seu problema não é o tamanho do arquivo (62K linhas é bico para
o postgres) e sim o conteúdo. Parece que o arquivo está em uma
codificação e sua base em outra.

Pelo que eu pude perceber sua base está em UTF8.

Você tem algumas opções:
1 - Setar o client_encoding no script que importa o arquivo;
Adicionando a linha abaixo antes do comando copy:
 SET client_encoding = '<codificação do arquivo>';

Para descobrir a codificação do arquivo basta usar o comando:
file -i arquivo

2 - Você pode converter seu arquivo para UTF8:
iconv -f `file -i seu_arquivo | sed 's/^.*charset=//g'` -t utf8
seu_arquivo > seu_arquivo_utf8


Obs.: Levei em conta que seu ambiente é linux.

-- 
Marcone Peres - DBA
http://www.linkedin.com/in/marconeperes
@marconeperes
(61) 8146-0028
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a