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
[code]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;
}[/code]
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