我正在尝试将一些数据从MATLAB导出到数据库。我通过ODBC使用PostgreSQL数据库如下。首先,我创建连接:
dbConn = database('PostgreSQL30', username,password);
如果我尝试手动执行一些测试插入,一切看起来都很好:
exec( dbConn, 'insert into test(std) values(2.2)')
当我尝试动态生成一些简短查询时,一切看起来仍然很好:
q = sprintf('insert into test(std) values(%2.2f)', 12.345);
res = exec(dbConn, q);
但是当我尝试生成一些包含字符串的查询时,我收到一个错误:
>> q = sprintf('insert into test(name) values("%s")', 'xxx')
q =
insert into test(name) values("xxx")
>> res = exec(dbConn, q);
>> res.Message
ans =
ERROR: column "xxx" does not exist;
Error while executing the query
如果我使用"%s"
格式或普通%s
,则没有区别。问题出在哪儿?
修改
好的,我使用了错误的引号。当我使用时:
q = sprintf('insert into test(name) values(''%s'')', 'xxx')
一切都好。所以可以关闭/删除问题。抱歉打扰你。
答案 0 :(得分:4)
您是否尝试使用单引号?
>> q = sprintf('insert into test(name) values(''%s'')', 'xxx')
q =
insert into test(name) values('xxx')