使用 CsvJDBC 获取"java.sql.SQLException: Line contains wrong number of columns"



我正在使用CsvJdbc(它是csv-files的jdbc驱动程序)访问csv-file。但是在读取csv时,它抛出了下面的Exception:

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文件。这是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();
    }

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

最新更新