使用CsvJDBC获取“java.sql.SQLException:Line包含错误的列数”

时间:2014-07-31 18:54:50

标签: java jdbc

我正在使用CsvJdbc(它是csv文件的JDBC驱动程序)来访问csv文件。但是在阅读csv时,它会抛出以下异常。

java.sql.SQLException: Line contains wrong number of columns: 5 13
    at org.relique.jdbc.csv.CsvReader.getEnvironment(Unknown Source)
    at org.relique.jdbc.csv.CsvResultSet.next(Unknown Source)
    at com.quicklyjava.MLUData.mlu(MLUData.java:66)
    at com.quicklyjava.MLUData.main(MLUData.java:118)

它正在打印输出,但之后就抛出了上面提到的异常。它表明它正在读取csv。 Here是csv文件的链接。有人可以帮我吗?提前谢谢!

以下是代码:

      Properties props = new java.util.Properties();
Class.forName("org.relique.jdbc.csv.CsvDriver");
Connection conn = DriverManager.getConnection("jdbc:relique:csv:D:\\CSVs");
props.put("separator", ",");
Statement stmt = conn.createStatement();
String query = "SELECT * FROM "
                        + locale.getCsvFileName()
                        + " WHERE ID =".concat("'").concat(adpItemId)
                                .concat("'");
                ResultSet results = stmt.executeQuery(query);
                System.out.println("Locale is: " + locale.getCsvFileName());

                while (results.next()) {System.out.println(results
                            .getString("Object_Type_Name"));

                }
                listMLU.add(mlu);
                // System.out.println("Done for "+locale.getCsvFileName());

                // clean up
                results.close();
                stmt.close();
            }
        }
    } catch (Exception e) {
        e.printStackTrace();
    }

1 个答案:

答案 0 :(得分:0)

这里有太多记录可供人工查找错误。我的建议是实现一个算法,以验证每行有12个逗号,并找出问题所在。