我正在阅读csv文件并使用java存储到oracle数据库中 我的数据库结构是:
Name Null Type
------------- ---- -------------
DATE_D VARCHAR2(800)
DESCRIPTION VARCHAR2(800)
TRANSACTIONID VARCHAR2(800)
CREDIT_AMOUNT NUMBER(8,2)
DEBIT_AMOUNT NUMBER(8,2)
REMAINING NUMBER(8,2)
ODAMOUNT NUMBER(8,2)
ENTEREDBY VARCHAR2(800)
REMARKS VARCHAR2(800)
直到300记录程序正确插入记录无一例外 第300条记录是:
30/01/2017 17:36:19 ICCDMR AGENT COMMISSION OLKB9O 0.17 0 2744.63 0 INHYD03904375S ICCDMR AGENT COMMISSION - 9550681786
301记录是这样的:
30/01/2017 17:33:49 ICCDMR AGENT COMMISSION OLKB24 0.08 0 2744.46 0 INHYD03904375S ICCDMR AGENT COMMISSION - 7097545406
我想知道我在这里得到的无效数字异常是什么。 这是我的java代码:
while ((line = br.readLine()) != null) {
linecount++;
String[] value = line.split(",");
if (linecount != 1) {
value1 = value[0].split(" ");
System.out.println(value1[0]);
System.out.println(value1[1]);
String sql = "insert into HARMS( date_d,time_t,Description ,TransactionId,"
+ "Credit_Amount,Debit_Amount ,Remaining,OdAmount ,EnteredBy,Remarks)"
+ "values('" + value1[0] + "','" + value1[1] + "','" + value[1] + "','"
+ value[2] + "','" + value[3] + "','" + value[4] + "','" + value[5] + "','"
+ value[6] + "','" + value[7] + "','" + value[8] + "')";
ps = cn.prepareStatement(sql);
int c = ps.executeUpdate();
}
}
请让我离开这个。
答案 0 :(得分:0)
我假设TIME_T is also VARCHAR2 column present in your table
,但你错过了在你的问题中写下来。试试以下代码:
String sql = "INSERT INTO HARMS(DATE_D, TIME_T, DESCRIPTION, TRANSACTIONID, CREDIT_AMOUNT, DEBIT_AMOUNT, REMAINING, ODAMOUNT, ENTEREDBY, REMARKS)"+
" VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)";
ps = cn.prepareStatement(sql);
ps.setString(1, value1[0]);
ps.setString(2, value1[1]);
ps.setString(3, value[1]);
ps.setString(4, value[2]);
ps.setFloat(5, Float.parseFloat(value[3]));
ps.setFloat(6, Float.parseFloat(value[4]));
ps.setFloat(7, Float.parseFloat(value[5]));
ps.setFloat(8, Float.parseFloat(value[6]));
ps.setString(9, value[7]);
ps.setString(10, value[8]);
int c=ps.executeUpdate();