将值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)
答案 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();