Массовая загрузка в SQL Server не смогла загрузить значения с плавающей запятой

Мне нужно передать данные с одного сервера базы данных на SQL Server. Я использую SQLServerBulkCopy для этого:

// connection1 is with the source system and
// connection2 is with the destination SQL Server
Statement statement = connnection1.createStatement();

ResultSet resultSet = statement.executeQuery("select * from db.table");

SQLServerBulkCopy bulkCopy = new SQLServerBulkCopy(connection2);
bulkCopy.setDestinationTableName("tableName");
bulkCopy.writeToServer(resultSet);

При этом я получаю следующую ошибку:

com.microsoft.sqlserver.jdbc.SQLServerException: тип данных float не поддерживается при массовом копировании.

в com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:226)
в com.microsoft.sqlserver.jdbc.SQLServerBulkCopy.getDestTypeFromSrcType(SQLServerBulkCopy.java:1443) в com.microsoft.sqlserver.jdbc. SQLServerBulkCopy.createInsertBulkCommand(SQLServerBulkCopy.java:1464) в com.microsoft.sqlserver.jdbc.SQLServerBulkCopy.sendBulkCopyCommand(SQLServerBulkCopy.java:1611) в com.microsoft.sqlserver.jdbc.SQLServerBulkCopy.doInsertBulk(SQLServerBulkCopy.java:15) .microsoft.sqlserver.jdbc.SQLServerBulkCopy.access$200(SQLServerBulkCopy.java:63) в com.microsoft.sqlserver.jdbc.SQLServerBulkCopy$1InsertBulk.doExecute(SQLServerBulkCopy.java:705) в com.microsoft.sqlserver.jdbc.TDSCommand. выполнить (IOBuffer.java:7240) в com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2869) в com.microsoft.sqlserver.jdbc.SQLServerBulkCopy.sendBulkLoadBCP(SQLServerBulkCopy.java:733) в com.microsoft.sqlserver.jdbc.SQLServerBulkCopy.writeToServer(SQLServerBulkCopy.java:1669) в com.microsoft.sqlserver.jdbc.SQLServerBulkCopy.writeResultSet(SQLServerBulkCopy.java:641) в com.microsoft.sqlserver.jdbc.SQLServerBulkCopy.writeToServer (SQLServerBulkCopy.java:579)

Можно ли как-то обойти эту проблему?


person pkgajulapalli    schedule 14.12.2018    source источник


Ответы (1)


Попробуйте создать пакет SSIS в SSDT. Или используйте инструмент «Импорт и экспорт данных», если это просто базовый импорт.

person DarthCSharper    schedule 14.12.2018
comment
Это не основной импорт. Мне нужно, чтобы он работал из моего java-кода. - person pkgajulapalli; 14.12.2018
comment
Затем попробуйте использовать пакет SSIS в SSDT. Он имеет разъемы JDBC. - person DarthCSharper; 14.12.2018