我在SQLServerBulkCopy上遇到了一个奇怪的问题。我有一个csv文件,我需要使用SQLServerBulkCSVFileRecord批量插入到表中。 执行时出现此错误:
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: Source data does not match source schema.
at com.microsoft.sqlserver.jdbc.SQLServerBulkCSVFileRecord.getRowData(SQLServerBulkCSVFileRecord.java:467)
at com.microsoft.sqlserver.jdbc.SQLServerBulkCopy.writeBatchData(SQLServerBulkCopy.java:3469)
... 10 more
Caused by: java.lang.ArrayIndexOutOfBoundsException: 17
at com.microsoft.sqlserver.jdbc.SQLServerBulkCSVFileRecord.getRowData(SQLServerBulkCSVFileRecord.java:296)
... 11 more
使用bulk copy command line utility导入的同一文件可以正常工作。 在搜索问题时,我发现有些人无法导入到具有16列以上的表(我的表有45列),问题是mssql jdbc和jdk之间的版本问题。
我正在使用Java 8版本“ 1.8.0_162”和
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>7.2.1.jre8</version>
</dependency>
所以我想它应该能正常工作。 可能是什么问题?