आपने अपने प्रश्न में जो शामिल किया है, उसमें मुझे दो समस्याएं दिखाई दे रही हैं। पहला टाइपो जैसा दिखता है। इसके बाद:
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
print प्रिंट करते हैं , हम इसे देखते हैं:
> 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 है जिसे डेटाबेस सर्वर द्वारा निष्पादित किया जाएगा। यदि वह आपके DB के लिए मान्य SQL है तो यह काम करेगा।