मैं ODBC और RODBC
से परिचित नहीं हूँ , लेकिन दस्तावेज़ीकरण के उपरोक्त स्निपेट के बारे में मेरा पढ़ना यह है कि SET NAMES 'utf8';
MySQL के SQL बोली
का हिस्सा है , ताकि आप उसे चला सकें जैसा कि आप किसी अन्य SQL कथन के साथ करेंगे जिसका उपयोग आप अपने डेटा बेस से डेटा पुनर्प्राप्त करने के लिए कर सकते हैं।
कुछ ऐसा (परीक्षण नहीं किया गया):
sqlQuery(myChannel, query = "SET NAMES 'utf8';")
जहां myChannel
odbcConnect()
द्वारा दिया गया कनेक्शन हैंडल है ।
क्या कोई कारण है कि आप RMySQL पैकेज पर RODBC का उपयोग कर रहे हैं? मुझे RMySQL का उपयोग व्यापक डेटा प्रोसेसिंग और डेटा के जटिल सेटों की पुनर्प्राप्ति के लिए R के भीतर से करने का अच्छा अनुभव है।
अपडेट करें: कुछ
है। ए> सबूत
कि, कम से कम एक बिंदु पर, कि SET NAMES
MySQL ODBC ड्राइवर में निष्क्रिय कर दिया गया है। यदि आप आश्वस्त हैं कि आप डेटाबेस तक सीधे पहुंच के माध्यम से वर्णों को पढ़ सकते हैं (mysql
. के माध्यम से) या MySQL के GUI फ्रंट एंड्स में से एक), तो आप SET NAMES
. को दोहराने की कोशिश कर सकते हैं करता है। निम्नलिखित MySQL मैनुअल
से है। :
A SET NAMES 'x' statement is equivalent to these three statements:
SET character_set_client = x;
SET character_set_results = x;
SET character_set_connection = x;
आप SET NAMES
. के स्थान पर उन तीन SQL कथनों को निष्पादित करने का प्रयास कर सकते हैं और देखें कि क्या यह काम करता है।
वही मैनुअल SET CHARACTER SET
. का भी दस्तावेजीकरण करता है , जिसका उपयोग उसी तरह किया जा सकता है जैसे SET NAMES
:
SET CHARACTER SET charset_name
SET CHARACTER SET
SET NAMES
. के समान है लेकिन सेट करता है character_set_connection
और collation_connection
करने के लिए character_set_database
और collation_database
. ए SET CHARACTER SET x
कथन इन तीन कथनों के बराबर है:
SET character_set_client = x;
SET character_set_results = x;
SET collation_connection = @@collation_database;
collation_connection
सेट करना character_set_connection
. भी सेट करता है संयोजन से जुड़े वर्ण सेट के लिए (SET character_set_connection = @@character_set_database
निष्पादित करने के बराबर) ) character_set_connection
. सेट करना जरूरी नहीं है स्पष्ट रूप से।
आप SET CHARACTER SET 'utf8'
का उपयोग करके देख सकते हैं इसके बजाय।
अंत में, आप किस चरित्र सेट/लोकेल में चल रहे हैं? ऐसा लगता है कि आप विंडोज़ पर हैं - क्या यह UTF8 लोकेल है? मैंने आपके प्रश्न में कुछ भ्रम भी देखा है। आप कहते हैं कि आपने अपना डेटा एमएस एक्सेस में आयात किया है, और फिर इसे ओडीबीसी में निर्यात कर दिया है। क्या आपका मतलब है कि आपने इसे MySQL में निर्यात किया है? हालांकि मैं ओडीबीसी एक कनेक्शन ड्राइवर था जो डेटाबेस की एक श्रृंखला के साथ/के बीच संचार की अनुमति देता था, ऐसा कुछ नहीं जिसे आप "निर्यात" कर सकते थे।
क्या आप वास्तव में MySQL में डेटा हैं? क्या आप वहां से डेटा पढ़ने के लिए आरओडीबीसी के माध्यम से एमएस एक्सेस से कनेक्ट नहीं हो सके?
यदि डेटा MySQL में है, तो डेटाबेस से कनेक्ट करने और डेटा पढ़ने के लिए RMySQL पैकेज का उपयोग करने का प्रयास करें।