我收到以下錯誤導入CSV文件到Oracle數據庫中使用Java
Java.lang.ArrayIndexOutOfBoundsException: 0
at oracle.jdbc.driver.OracleSql.main(OracleSql.java:1614)
我使用的Eclipse靛藍和Oracle我10g.how可以解決此問題problem.can誰能幫助我?
我要加載CSV文件到Oracle數據庫.. 我已經創建了一個名爲ZT表有三列(ID,s_date,數據) CSV數據包含如下:
a1,2015-04-15 17:40:20.0,18.5786
a2,2015-04-15 16:20:59.0,16.7868
a3,2015-03-15 16:20:59.0,16.51689
a4,2015-04-16 16:20:55.0,24.789028
a5,2015-02-15 17:55:59.0,28.784145
代碼
import java.io.FileReader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.Statement;
import au.com.bytecode.opencsv.CSVReader;
public class ImportTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
readCsv();
}
public static void readCsv() {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn =DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521/xe","system","arry");
PreparedStatement pstmt =conn.prepareStatement("Insert into zt values(?,?,?)");
CSVReader reader = new CSVReader(new FileReader("D:\\zzzzzzzz.csv"), ',');
String[] nextLine;
int i = 0;
while((nextLine = reader.readNext()) != null) {
i++;
pstmt.setString(1,nextLine[0]);
pstmt.setString(2,nextLine[1]);
pstmt.setDouble(3,Double.parseDouble(nextLine[2]));
}
pstmt.close();
conn.commit();
conn.close();
} catch(Exception e) {
e.printStackTrace();
}
}
}
發佈完整的異常堆棧跟蹤。 – Aakash
發佈完整的堆棧跟蹤。但有可能你正在訪問'nextLine'中不存在的索引。 – Shahzeb