[firebase-br] Problema de Charset em trigger/Sps
Eduardo Bahiense
eduardo em icontroller.com.br
Seg Set 22 11:19:40 -03 2008
Bom dia
Estou tendo problemas em bases restauradas de backups gerados no linux
(debian) e restauradas em máquinas windows (XP sp2).
Temos uma SP que gera os feriados nacionais com Páscoa, carnaval, entre
outros e alguma triggers auto-geradas que contêm caracteres acentuados.
O problema foi detectado ao se extrair o metadata pelo IBExpert e
ocorrer erro de "Can not transliterate between character sets".
Detalhes:
1. Ambas as máquinas utilizam a versão 2.1
2. As bases foram migradas do 2.0 por bkp/restore
3. Após o restore foi rodada a rotina de corrigir metadata
4. Dropamos todas as triggers e sp's e recriamos, na tentativa de resolver
5. No windows, isso resolve (dropar e recriar)
6. No linux, pelo ISQL, consegue-se visualizar o metadata da SP
(RDB$PROCEDURE_SOURCE), porém, pelo IBWebAdmin, o metadata não é exibido.
7. No Windows também exibe normalmente, só que com caracteres errados
('Pßscoa') e se tentar abrir pelo IBExpert ou qualquer outra ferramenta
adminstrativa, dá o erro citado acima.
8. Em ambos, a procedure executa normalmente, aplicando os caracteres
acentuados corretamente. Acredito que a exibição de caracter acentuado
trocado ocorra no windows por falha do terminal CMD do windows e não
pelo ISQL em si.
9. Tanto no windows como no linux, um SELECT * FROM RDB$PROCEDURES
resulta, para cada registro a mensagem:
==============================================================================
RDB$PROCEDURE_BLR:
BLOB display set to subtype 1. This BLOB: subtype = 2
==============================================================================
É isso. Tudo funciona normal. Nas triggers, tiramos a acentuação pois
era apenas um comentário "Trigger criada automaticamente, qualquer
alteração será sobreescrita".
O problema é extrair o metadata pelo IBExpert. Temos que lembrar de não
incluir a SP de Feriados, se não ele pára.
Se alguém puder dar uma luz, será bem-vinda.
Abraço
Eduardo
Mais detalhes sobre a lista de discussão lista