Я вижу две проблемы с тем, что вы включили в свой вопрос.Первый выглядит как опечатка.После:
html <- "<div style='text-align: center; font-family: Arial;'><span style='font-size: 14pt;'>Some text without any tricky symbols.</span></div>"
У вас есть:
query <- c('INSERT INTO table (htmlfield) VALUES (\"', html, '"')
^^^^^^^^^^^^^^^
Обратите внимание, что вы избегаете одной строки, но не другой.Вам не нужно избегать их, но это не имеет значения, если вы делаете.Вы также имели в виду '")'
для последней строки, которая, я подозреваю, является реальным источником ошибки, которую вы получаете.paste
, а не c
более полезно здесь.Если я объединю их, мы получим:
query <- paste('INSERT INTO table (htmlfield) VALUES ("', html, '")', sep = "")
, который мы можем использовать напрямую:
dbSendQuery(con, query)
Вторая проблема, которую создают многие люди, заключается в том, чтобы запутать печатное представлениеобъект с самим объектом.Если мы напечатаем query
, мы увидим это:
> query
[1] "INSERT INTO table (htmlfield) VALUES (\"<div style='text-align: center; font-family: Arial;'><span style='font-size: 14pt;'>Some text without any tricky symbols.</span></div>\")"
Печатное представление строки всегда заключено в ""
двойные кавычки, и поэтому внутренний "
должен быть экранирован.То, на что вы хотите посмотреть, это фактическая строка.Мы можем сделать это с помощью cat
или writeLines
- я предпочитаю последнее, так как оно автоматически добавляет "\n"
в конец строки:
> writeLines(query)
INSERT INTO table (htmlfield) VALUES ("<div style='text-align: center; font-family: Arial;'><span style='font-size: 14pt;'>Some text without any tricky symbols.</span></div>")
Обратите внимание, как теперь "
не сбежал.Это SQL, который будет выполняться сервером базы данных.Если это допустимый SQL для вашей БД, он будет работать.