Почему я получаю эту ошибку при создании запроса SQL в MATLAB? - PullRequest
2 голосов
/ 21 декабря 2009

Я пытаюсь экспортировать некоторые данные из 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')

все в порядке. Так что вопрос можно закрыть / удалить. Извините, что беспокою вас.

1 Ответ

4 голосов
/ 21 декабря 2009

Вы пробовали использовать одинарные кавычки?

>> q = sprintf('insert into test(name) values(''%s'')', 'xxx')

q =

insert into test(name) values('xxx')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...