cyber_jso 0 Denunciar post Postado Maio 29, 2006 Olá pessoal! Esou com um problema em um campo de uma tabela que é do tipo number (10,2). Valores maiores que zero ele grava normalmente, porém quando utilizo valores menores, por exemplo (0,50) ele grava (,00). No momento do insert ou do update deste valor, faço o seguinte tratamento antes de enviar para o banco de dados replace(replace('[valor]','.',''),',','.'). Alguém sabe como devo fazer para evitar o problema que citei acima? Desde já, agradeço a atenção de todos. Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Maio 29, 2006 que lingua usa no oracle ? que formato de numero ? que linguagem usa para acessar o bd ? replace(replace('[valor]','.',''),',','.') tranforma um valor decimal latino num americano. Compartilhar este post Link para o post Compartilhar em outros sites
alphamek 2 Denunciar post Postado Maio 29, 2006 Olá, Existem alguns modos que você pode utilizar para contornar o problema, utilizando uma função SQL ou parametros do NLS do seu banco de dados, veja: DWSP> create table rodrigo (a number(10,2));Table created.DWSP> insert into rodrigo values (100.5);1 row created.DWSP> insert into rodrigo values (-33.55);1 row created.DWSP> insert into rodrigo values (0.56);1 row created.DWSP> select to_char(a,'000.00') from rodrigo;TO_CHAR------- 100.50-033.55 000.56 Para tentar substituir seus REPLACES, basta mudar o NLS_TERROTORY para BRAZIL. Que irá realizar a função dos seus replaces, veja: DWSP> select * from rodrigo; A---------- 100.5 -33.55 .56DWSP> alter session set nls_territory = "BRAZIL";Session altered.DWSP> select * from rodrigo; A---------- 100,5 -33,55 ,56 Se tiver mais dúvidas poste. Abraços, Compartilhar este post Link para o post Compartilhar em outros sites