Fórum Como converter uma coluna de String para Integer? #56212
14/06/2006
0
Preciso converter uma coluna que é String para outra Integer. Tentei passar os valores via SQL utilizando Cast mas não consegui.
update alunosparcelas AP Set AP.boletonumerounico = cast(AP.boletonumerounicostr as integer)
Teria como eu fazer isso?
Obrigado.
Yallebr
Curtir tópico
+ 0Posts
14/06/2006
Vinicius2k
Qual o comprimento deste VARCHAR? É possível que esteja excedendo o limite do tipo INTEGER e talvez você precise utilizar BIGINT (se for FB 1.5.x).
Gostei + 0
14/06/2006
Yallebr
Varchar(20)
FirBird 1.5.2, tipo BIGINT?
Posso mudar o tamanho da coluna para 10 e tentar converter?
Obrigado.
Gostei + 0
14/06/2006
Vinicius2k
O comprimento do campo VARCHAR em si não tem tanta importância. O importante é que você não tenha um valor maior que ´2147483647´.
Se tiver, a única alternativa é o BIGINT (ou INT64) que é um novo tipo de inteiro implementado a partir do FB 1.5.0.
Com o BIGINT você poderá armazenar até [b:584f58ab5c](2^63)-1[/b:584f58ab5c]. Algo em torno de ´9223372036854775807´, se eu tiver calculado corretamente.
Gostei + 0
15/06/2006
Yallebr
Mas como eu faria isso, pordeira colocar o código por favor?
Gostei + 0
15/06/2006
Vinicius2k
A instrução é, basicamente, a mesma que você tentou executar da primeira vez, com exceção de que utilizará BIGINT ao invés de INTEGER.
- drope a coluna [i:80bbb2ac9a]INTEGER[/i:80bbb2ac9a] e recrie como [i:80bbb2ac9a]BIGINT[/i:80bbb2ac9a];
- no CAST utilize [i:80bbb2ac9a]AS BIGINT[/i:80bbb2ac9a]:
update SUA_TABELA set CAMPO_BIGINT = cast(CAMPO_VARCHAR as bigint)
Dicas:
1. O EMS IB/FB Manager não consegue trabalhar corretamente com o tipo BIGINT para exibição de resultados de consultas. Se você utiliza o IBExpert, sem problemas.
2. O valor limite para o BIGINT é [i:80bbb2ac9a]9223372036854775807[/i:80bbb2ac9a]. Se seu campo VARCHAR contiver um valor superior a este, você terá erro na conversão de tipos.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)