Я пытаюсь экспортировать некоторые данные из MATLAB в базу данных. Я использую базу данных PostgreSQL через ODBC следующим образом. Сначала я создаю соединение:
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
. В чем проблема?
EDIT
ОК, я использовал неправильные кавычки. Когда я использую:
q = sprintf('insert into test(name) values(''%s'')', 'xxx')
все в порядке. Так что вопрос можно закрыть / удалить. Извините, что беспокою вас.