Como converter uma coluna de String para Integer?
Olá pessoal,
Preciso converter uma coluna que é String para outra Integer. Tentei passar os valores via SQL utilizando Cast mas não consegui.
Teria como eu fazer isso?
Obrigado.
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
Curtidas 0
Respostas
Vinicius2k
14/06/2006
Colega,
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).
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
Yallebr
14/06/2006
Olá
Varchar(20)
FirBird 1.5.2, tipo BIGINT?
Posso mudar o tamanho da coluna para 10 e tentar converter?
Obrigado.
Varchar(20)
FirBird 1.5.2, tipo BIGINT?
Posso mudar o tamanho da coluna para 10 e tentar converter?
Obrigado.
GOSTEI 0
Vinicius2k
14/06/2006
Colega,
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.
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
Yallebr
14/06/2006
Ok, valeu.
Mas como eu faria isso, pordeira colocar o código por favor?
Mas como eu faria isso, pordeira colocar o código por favor?
GOSTEI 0
Vinicius2k
14/06/2006
Colega,
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]:
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.
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