我正在尝试使用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)
确实有效 编辑:这个错误现在很少发生并且不可重现,相同的数据有时有效,有时无效。