我正在尝试将一些数据从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')
一切正常。因此问题可以关闭/删除。抱歉打扰你了。