Sql server MATLAB fastinsert误差
我在SqlServer数据库中有一个简单的表,Sql server MATLAB fastinsert误差,sql-server,matlab,matlab-table,Sql Server,Matlab,Matlab Table,我在SqlServer数据库中有一个简单的表,simSQLTable。列标题为: index, del_date, name 我在MATLABmytbl中有一个表,其中有一行: num deldate myname --- ------- ------ 1 '07-02-2015 00:00:00.0' 'JenZ' mycolnames = {'index', 'del_date', 'name'}; 我使用的fastinsert如下: fastinsert(con
simSQLTable
。列标题为:
index, del_date, name
我在MATLABmytbl
中有一个表,其中有一行:
num deldate myname
--- ------- ------
1 '07-02-2015 00:00:00.0' 'JenZ'
mycolnames = {'index', 'del_date', 'name'};
我使用的fastinsert
如下:
fastinsert(conn, 'simSQLTable', mycolnames, mytbl);
但我得到了这个错误:
Error using database/fastinsert (line 90)
Variable fields and insert fields do not match.
如何解决此问题?
fastinsert
查询数据库以获取列的数据类型。这会导致保留关键字出现问题。在mySQL或Transact-SQL中尝试使用反勾号`
“引用关键字索引
mySQL:
mycolnames = {'`index`', 'del_date', 'name'}
mycolnames = {'"index"', 'del_date', 'name'}
Transact-SQL:
mycolnames = {'`index`', 'del_date', 'name'}
mycolnames = {'"index"', 'del_date', 'name'}
我认为这里的主要问题是
mycolnames
中的列名属于数据库表,而不是您的MATLABmytbl
。它有自己的变量名,由{num''deldate''myname}
给出,与数据库列名不匹配。从:
要插入的数据,指定为数字矩阵、单元格数组、表格、数据集数组或包含要插入到现有数据库表的所有数据的结构tablename
。如果Data
是结构,则结构中的字段名必须匹配colnames
。如果Data
是表格或数据集数组,则表或数据集数组中的变量名必须匹配colnames
要解决此问题,您可以在表中选择以下两种方法,使它们与数据库列名匹配:
mytbl.Properties.VariableNames=mycolnames;
Fastnsert(康涅狄格州,西姆斯克兰特,MyclNames,mytbl);
也可以只插入需要插入的内容:
fastinsert(conn,'simSQLTable',mycolnames,mytbl.Variables);
谢谢。让我试试。而且我刚刚发现我没有写权限。