Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

HemersonSales

[Resolvido] Inserindo com Espaços no Fim

Recommended Posts

Então eu estou tentando inserir em uma tabela o valor 'EFUN', por exemplo, e na o INSERT acontece normalmente. Ai quando eu consulto no banco eu vejo que o valor foi inserido 'EFU '.

O campo é char com limite de 4 caracteres.

 

Experimentei aumentar o limite para 5 caracteres e o resultado foi que inseriu 'EFU '.

 

Alguém tem alguma idéia do porque isto acontece e como resolver?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Os tipos de campos CHAR ocupam todo o espaço que você alocar, ou seja, se você inserir dois caracteres, jah esta alocado os 5.

 

Voce soh consegue ver um que o MMS tira os outros espacos em branco no final, deixando somente um.

 

Se você nao quer ter este problema, use VARCHAR, pois este tipo de campo aloca somente o que você usar.

 

Abçs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mudei pra VARCHAR e acontece a mesma coisa.

 

O problema não é que os campos não utilizados estão sendo ocupados por espaço, é que o último caractere do valor a ser inserido está sendo substituído por um espaço.

 

Invés de inserir '1234', insere '123 '. O '4' é substituído por um ' '.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa.. eu li o post#1 errado... foi mal.

 

você disse que o insert eh executado normalmente, mas você viu a execucao pela aplicacao? Tente ver pelo SQLProfiler o momento do insert.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aparece normal o insert. no Profiler

Segue algumas informação do campo:

 

Type: Char

Computed: no

Length: 4

Prec = null

Scale = null

Nullable = yes

TrimTrailingBlanks = no

FixedLenNullnSource = yes

Colation = SQL_Latin1_General_CP1_CI_AI

 

Não sei se isso ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como diz a molecada hoje ...teeeenso. :)

 

Existe alguma trigger na tabela ?

 

Tentou um insert direto no BD ?

 

A coluna teve alguma alteração no tamanho recentemente ?

 

Verificou na camada de aplicação se pode ter alguma definição errada lá (lá estar com 3 posições) ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito Tenso rsrs

 

Não há Trigger

Na Aplicação, o valor esta com os seus 4 caracteres normais

E já tentei executar o insert direto no BD.

 

Mas o coluna teve seu temanho alterado, e um outro fato curioso:

Dei um UPDATE na tabela pra colocar o valor certo, e simplesmente foi. Só no Insert que o BD "come" o último caractere e põe um espaço no lugar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu aposto que na camada de aplicação em algum ponto ficou um perdido com o tamanho antigo.

 

Um substr da vida, uma variável de memória etc.

 

Dificilmente o problema é no BD.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu aposto que na camada de aplicação em algum ponto ficou um perdido com o tamanho antigo.

 

Um substr da vida, uma variável de memória etc.

 

Dificilmente o problema é no BD.

 

Eu cubro a aposta do Motta :P

 

Verifique pelo Profiler todo a sequencia incluindo depois do Insert para verificar se nao tem update ou algo na propria aplicacao.

 

Se nao souber usar o Profiler eh soh falar

 

 

Abçcs

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.