[firebase-br] Float para numeric

Eduardo Jedliczka edujed em gmail.com
Qua Fev 9 17:39:23 -03 2011


Se o campo não tiver nenhum tipo de índice ou dependência (como ser
utilizado numa SP ou numa VIEW)

Experimente renomear o campo atual para outro nome, crie o campo novo
(com o tipo correto e com o nome utilizado atualmente), e faça um
update set campo = cast(campo_velho as numeric(15,6)).

Coloquei 15,6 pois você disse que há campos que precisam de 6 casas
após a vírgula.

e sim, usar um update de 3.75 com cast para numeric(10,2) irá gravar 3.75

mas "talvez" com cast (15.6) pode gerar 3.749998 ou 3.750001 portando
vale à pena verificar a precisão "campo a campo".

abraço,

==========================
Eduardo Jedliczka
Apucarana - Pr
==========================




Em 9 de fevereiro de 2011 13:03, Levy Moreira
<levymoreira.ce em gmail.com> escreveu:
> Pessoal vamos fazer nesse próximo mês a mudança de vários campos em varias
> tabelas de float para numeric, o motivo
> da mudança acredito que saibam, os campos float tem uma precisão que causa
> muitos problemas com valores monetários,
> mas como são vários campos em varias tabelas estou um tanto quanto
> preocupado, e com algumas duvidas.
> 1- Se eu simplesmente pegar os campos float e setar em campos numeric eu vou
> passar por algum tipo de erro?
> 2- Pretendo fazer o update com um cast como:
>  update tabela set campoNumeric = cast(campoFloat as numeric(10, 2))
>  isso ta certo? Meu objetivo é passar no lugar do 2 a precisão que o cliente
> utiliza no sistema.
> 3- Se eu usar campos numeric de precisão 10, pode dar algum tipo de
> problema? Porque preciso dessa precisão há clientes
>  que utilizam ate 6 casas decimais, então 10 é por prevenção :)
> 4- Com o cast perco muito tipo se eu cadastrei em float com 3.75 e ele salva
> com um monte de quebrados,
>  eu passando com cast numeric de precisão 2 perco algo ou ele volta para
> 3.75.
> 5- A operação será:
>  crio um campo numeric na tabela
>  passo os valores do campo float para o numeric
>  deleto a tabela float e recrio como numeric
>  e então passo da tabela auxiliar numeric para a original numeric
>  e deleto a  auxiliar.
>  Será que vai dar certo?
>
> Se alguém já passou por uma transição dessa, e tem alguma dica pra me dar eu
> aceito por mais simples que seja, nunca
> fiz uma operação dessas, e sinceramente estou um tanto quanto assustado.
> E se houver uma forma melhor que essa por favor me digam.
>
> Obrigado a todos desde já.
>
> --
> Levy Moreira - Programador
> Sistech Informática - Juazeiro do Norte - CE
>
> ...........................................................................
> "Aviso de confidencialidade profissional" - Esta mensagem eletrônica e
> seus anexos são destinados exclusivamente ao(s) destinatário(s) acima e
> podem conter informações confidenciais sujeitas a restrição legal de
> comunicação entre as partes. Caso tenha recebido esta mensagem por engano,
> fica V.S.ª ciente de que a distribuição, divulgação ou disseminação das
> informações aqui contidas ou anexadas é terminantemente proibida, sujeitando
> o responsável às penalidades aplicáveis. Assim, solicitamos a gentileza
> de retorná-la de imediato ao remetente, eliminando-a definitivamente de
> seu sistema. Em caso de dúvida, queira por favor entrar em contato."
>
> "Confidentiality notice" - This message and its attachments are
> addressed solely to the persons above and may contain privileged and
> confidential
> communication. If you have received the message in error, the
> distribution or dissemination of the content hereof is prohibited. Please
> return it
> immediately to the sender and please delete the message from your system
> on a permanent basis. Should you have any questions, please contact."
>
> ...........................................................................
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>




Mais detalhes sobre a lista de discussão lista