1

我正在尝试使用fastinsert()数据库工具箱将数据从 Matlab(R2012b)插入 MS SQL Server(2008R2):

fastinsert(conn, tableNm, inC(:,1), inC(:,2));

isconnection(conn)返回 true 并在 fastinsert 后关闭,tableNm并且inC格式适合我的数据库。

如果我第一次运行它,它工作正常并且数据被插入到数据库中。如果我在同一个 Matlab 会话中再次运行它,我会收到以下错误:

Java exception occurred:
java.lang.AbstractMethodError:
com.microsoft.sqlserver.jdbc.Parameter.setValue(Lcom/microsoft/sqlserver/jdbc/JDBCType;Ljava/lang/Object;Lcom/microsoft/sqlserver/jdbc/JavaType;Lcom/microsoft/sqlserver/jdbc/StreamSetterArgs;Ljava/util/Calendar;Ljava/lang/Integer;Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;)V

at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.setValue(SQLServerPreparedStatement.java:723)

at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.setDouble(SQLServerPreparedStatement.java:866)

两个字段是数据时间tableNm,其他字段是浮点数,但这在我成功插入时不是问题。如果我重新启动 Matlab 并再次运行它,它将工作一次然后停止工作。数据库可以接受重复记录。

谁能解释我做错了什么以及如何做到这一点?

编辑:exec(conn, query)确实有效 编辑:这个错误现在很少发生并且不可重现,相同的数据有时有效,有时无效。

4

0 回答 0