Fórum Problemas na Migração - Tabelas com Acento e Cedilha #50594
19/04/2005
0
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
Curtir tópico
+ 0Posts
22/04/2005
Titanius
[]s
Gostei + 0
22/04/2005
Rafael Miguel
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).
Gostei + 0
22/04/2005
Titanius
[]s
Gostei + 0
22/04/2005
Rafael Miguel
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
Gostei + 0
22/04/2005
Titanius
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)