GARANTIR DESCONTO

Fórum Problemas na Migração - Tabelas com Acento e Cedilha #50594

19/04/2005

0

Pessoal,

Estou tentando migrar um banco de dados em Oracle para Firebird. Para a minha surpresa, a maioria das tabelas possuem nomes com acento e/ou cedilha. Na hora de criar o banco, funciona na mais plena tranqüilidade. Mas o problema é na hora de trabalhar com o banco. O Firebird sempre mostra o seguinte erro:

aritmethic exception, numeric overflow or string truncation.
Cannot transliterate character between character sets.



Por não saber se o CARACTER SET tem alguma influência também nos nomes de tabelas, como tem nos valores dos campos char e varchar. Tentei criar o banco utilizando o CHARACTER SET Win1252 e com o ISO8859_1. Das duas formas o erro persiste, inclusive quando é criado com o charset definido por omissão.

Como faço para resolver o problema sem ter que renomear as tabelas? Quais foram as suas experiências com esse tipo de problema? Imagino que vários de vocês passaram por isso.

[]s,

Rafael Cabral


Rafael Miguel

Rafael Miguel

Responder

Posts

22/04/2005

Titanius

tive esse problema, o que solucionoufoi eu pegar um firebid com o collated_ptbr, aih ele aceita os acentos... no firebase, tem ele...


[]s


Responder

Gostei + 0

22/04/2005

Rafael Miguel

Olá Titanius. Muito obrigado pela resposta.

No meu caso foi diferente. Fiz uns testes aqui e consegui criar as tabelas com acentuação e cedilha. Mas só consegui isso SEM definir o CHARACTER SET default.

O que tive que fazer em cada campo varchar q fosse criado definir o CHARACTER SET pra ele. Dá muito mais trabalho, mas vale a pena.

Mas ainda há limitações com acentos. Exemplo:

Se eu criar uma tabela chamada MÁQUINA ou DEFINIÇÃO. Ele aceita tranquilamente.

Mas se eu criar tabelas como MÁQUINA_RECURSO ou DEFINIÇÃO_USUÁRIO. Aí já dá problema em conexões ODBC. Daí renomeando para MÁQUINARECURSO ou DEFINIÇÃOUSUÁRIO. Ou então MAQUINA_RECURSO ou DEF_USER. Ou seja, para ODBC ou coloco acentuação ou coloco algum outro caracter especial q não seja alfanumérico.

O problema acima não é do banco e sim do ODBC. Então continua valendo a criação de banco de dados com acentos SEM CARACTER SET.

Eu concordo com a prática de evitar acentos e cedilhas em nome de banco de dados. O problema é q a pessoa q criou o sistema há vários anos está muito mal acostumada com o Oracle q permite essas coisas. Então para a migração preferiria tentar uma solução em q o SBDB aceitasse acentos e cedilhas do q mudar 38 tabelas e depois mexer na aplicação inteira. Isso levaria meses e não é isso q queremos.

Muito obrigado mais uma vez pela resposta. (Ops acho que escrevi demais).


Responder

Gostei + 0

22/04/2005

Titanius

Realmente, uma dica, é nunca usar acentuacao pra nomes de tabelas.. eu nao uso acentuacao e nem _, pois pode dar pau dependendo do componente de conexao..

[]s


Responder

Gostei + 0

22/04/2005

Rafael Miguel

Titanius.

Sou totalmente contra a prática de criar tabelas com acentuação. Por isso q tive q procurar por um solução do q ficar fazendo manutenção na aplicação cujo banco tem 38 tabelas. Mesmo assim tive q mudar o nome de 7 tabelas. Mas melhor mudar 7 q mudar 38 :o

Valeuz mais uma vez,

Rafael Cabral


Responder

Gostei + 0

22/04/2005

Titanius

realmente :D


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar