将java应用程序中的float插入Oracle Database 11gr2

时间:2015-04-02 15:46:07

标签: java oracle

将值Jtable插入我的数据库时,我收到此错误:

  

:java.sql.SQLSyntaxErrorException:ORA-01722:Nombre non valide

以下是主要依赖项:

String a=(String) (table.getValueAt(j,1));
Float echantillons= Float.parseFloat(a);

int rs=stmt.executeUpdate("insert into testing values ('"+echantillons+"')");

 Name                      Null?    Type
 ------------------------- -------- ----------------------------
 ECHANTILLIONS                      NUMBER(10,20)

3 个答案:

答案 0 :(得分:0)

ORA-01722:无效号码

表示您正在尝试将字符串插入数字字段, 你有权访问源数据吗?

答案 1 :(得分:0)

...'"+echantillons+"'...表示您希望将echantillons的值作为字符串插入。但是因为它可能是你想要的NUMBER(10,20)

int rs = stmt.executeUpdate(
             "insert into testing (echantillons) values ("+echantillons+")"); 

请参阅上面省略的'

答案 2 :(得分:0)

使用参数化的SQL。

除了作为一般的良好实践(养成使用它的习惯,并且您将避免SQL注入),它还意味着您可以避免Java和Oracle之间的任何国际化问题。也许你的问题出现了两个系统有不同的小数分隔符(, vs .)。

String a=(String) (table.getValueAt(j,1));
Float echantillons= Float.parseFloat(a);

PreparedStatement stmt = connection.prepareStatement(
        "insert into testing (echantillions) values (?)");

stmt.setFloat(1, echantillions);
int rs = stmt.executeUpdate();