Fórum Como converter uma coluna de String para Integer? #56212

14/06/2006

0

Olá pessoal,

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

Yallebr

Responder

Posts

14/06/2006

Vinicius2k

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).


Responder

Gostei + 0

14/06/2006

Yallebr

Olá

Varchar(20)

FirBird 1.5.2, tipo BIGINT?

Posso mudar o tamanho da coluna para 10 e tentar converter?

Obrigado.


Responder

Gostei + 0

14/06/2006

Vinicius2k

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.


Responder

Gostei + 0

15/06/2006

Yallebr

Ok, valeu.

Mas como eu faria isso, pordeira colocar o código por favor?


Responder

Gostei + 0

15/06/2006

Vinicius2k

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]:
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.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar