Erro de Oracle, reorganizando um atributo Caracter para um tamanho menor com GeneXus X

Simplesmente tinha um campo Character(40) onde o tamanho era muito grande para o string a ser guardado nele.
A decisão foi de mudar para Character(9).
Na hora de reorganizar tive um erro que não podia reorganizar para um campo menor porque os dados não entravam na coluna.
Olhando os dados nenhum deles era maior a 9.
Existe uma diferença no banco de dados no tratamento de atributos CHAR e VarChar, espacio reservado, etc, para o tipo Varchar é menor.
Solução sem entrar no detalhe de porque isso estava acontecendo (ja que depois não consegui reproduzir novamente o erro), simplesmente passei o campo CHARACTER(40) para VARCHAR(40), e depois para VARCHAR(9), para por ultimo passar para CHAR(9) e não deu problemas.
Conclusão: O erro não sei porque aconteceu, mas o que sim é seguro que o length do string antes da conversão, não era maior que 9, já que após esses 3 passos CHAR -> VARCHAR -> CHAR, a tabela ficou como desejava sem problemas.

Não reportei este caso porque não consegui reproduzir, então acho que é um workaround válido se volta a acontecer.

Fabricio De los Santos
Gerência de Projetos – Consultoria GeneXus –
ERP – Sistemas de Missão Crítica – Bancos de Dados.

Veja meus blogs em:
www.fabriciodelossantos.com

Deja un comentario