Problema de insert em banco oracle com float

0 respostas
D

Pessoal,

estou com o seguinte problema:

Trecho do log
Iniciando o cadastro de uma nova tarifa:
46313162;A;TZ;B;.0000001;1;-1

Houve um erro no cadastro de uma nova tarifa!
ORA-01722: invalid number

o problema esta ao inserir o valor .0000001 no banco de dados (a coluna é number(30,18))

Codigo

try{
 
                  v_text=v_id_plano+";"+
                           vobj_mc.getVdes()+";"+
                           vobj_mc.getVshdes()+";"+
                           vobj_mc.getVdscplano()+";"+
                           vobj_mc.getVpricevalue()+";"+
                           vobj_mc.getVscalefactor()+";"+
                           vobj_mc.getVumcode();
                  
                  log.info("Iniciando o cadastro de uma nova tarifa:\n"+v_text);
                  
                  v_sql="insert into rates (plan_uid,effective_date,short_desc,loaded_date,umcode,description,scalefactor,price_value) "+
                          "values (?,trunc(sysdate),?,trunc(sysdate),?,?,?,?)";
                  
                  //monta o Statement
                  this.stmt_i = conn.prepareStatement(v_sql);
 
                  this.stmt_i.setInt(1, v_id);
                  this.stmt_i.setString(2, vobj_mc.getVshdes().replaceAll("-1", "NULL"));
                  this.stmt_i.setString(3, vobj_mc.getVumcode().replaceAll("-1", "NULL"));
                  this.stmt_i.setString(4, vobj_mc.getVdes().replaceAll("-1", "NULL"));
                  this.stmt_i.setFloat(5, Float.parseFloat(vobj_mc.getVscalefactor().replaceAll("-1", "0")));
                  this.stmt_i.setFloat(6, Float.parseFloat(vobj_mc.getVpricevalue().replaceAll("-1", "0")));
 
                  this.stmt_i.executeUpdate();
                  
                  conn.commit();
 
                  log.info("Cadastro realizado com sucesso!");
                  
                  return true;
 
            }

Se realizar o SQL abaixo, diretamente no banco de dados da certo

insert into rates
  (plan_uid,
   effective_date,
   short_desc,
   loaded_date,
   umcode,
   description,
   scalefactor,
   price_value)
values
  (46313162, trunc(sysdate), 'TZ', trunc(sysdate), NULL, 'TZ', 1, .0000001);

valeu

Criado 1 de fevereiro de 2011
Respostas 0
Participantes 1