Erro (ERROR: value too long for type character varying(60)) ao Inserir valores com acentuação

3 respostas
steniobh

Ao tentar gravar no banco postgre uma string tamanho 60 ele grava normalmente, mais se no meio da string tiver algum caracter acentuado ele retorna este erro:

ERROR: value too long for type character varying(60)

se tento gravar string de 50 caracteres ela grava mesmo que tenha acentuação.

acentuação aumenta o lenght no postgre?

como resolver este problema?

Uso Spring e hibernate.

3 Respostas

jamirdeajr

Uma das possibilidades é de que seu DATABASE no PostgreSQL tenha sido criado com encoding SQL_ASCII, fazendo com que caracteres acentuados ‘gastem’ 2 bytes em vez de 1.
Se utilizar encoding LATIN1 ou UTF8 o problema não deve acontecer.
Se não for isso pode ser erro na conversão da própria página web, nesse caso verifique se o caracter acentuado da String no java está ficando com 2 caracteres em vez de 1 antes mesmo de persistir.

steniobh

Quando tento gravar direto no banco funciona direitinho.

Verifiquei e meu banco ta latin1.

até na hora que passo a string para o pojo está tudo certo.
aguma ideia?

steniobh

Estava lendo algo sobre escape() e unescape().

Alguem saberia me dizer como usa-los?

Criado 2 de maio de 2011
Ultima resposta 3 de mai. de 2011
Respostas 3
Participantes 2