2011-01-07 12 views
6

मैं आरओएसबीसी का उपयोग कर MySQL सर्वर से आर में डेटा ला रहा हूं।
तो डेटाबेस में से एक कॉलम में एक चरित्र वेक्टरआरओडीबीसी स्ट्रिंग को छिड़काव

SELECT MAX(CHAR_LENGTH(column)) FROM reqtable; 

रिटर्न अब मैं आपको एक उदाहरण है कि कैसे मैं इस समस्या में चला रहा हूँ दिखाएगा

`library(RODBC) 
con <- odbcConnect("mysqlcon") 
rslts <- as.numeric(sqlQuery(con, 
          "SELECT CHAR_LENGTH(column) FROM reqtable LIMIT 10", 
          as.is=TRUE)[,1]) 

` रिटर्न

> rslts 
[1] 62 31 17 103 30 741 28 73 25 357 

के रूप में जहां rslts <- nchar(as.character(sqlQuery(con, "SELECT column FROM reqtable LIMIT 10", as.is=TRUE)[,1])) रिटर्न

> rslts 
[1] 62 31 17 103 30 255 28 73 25 255 

तो लंबाई> 255 255 पर छोटा कर दिया जा रहा है के साथ तार वहाँ एक रास्ता मैं पूरी स्ट्रिंग मिल सकता है।

धन्यवाद

+1

इस प्रश्न ने मेरे लिए समस्या हल की: http://stackoverflow.com/questions/22366195/rodbc-sqlquery-returns-varchar255-when-it-should-return-varcharmax – bart

उत्तर

2

PostgreSQL ODBC ड्राइवर एक चर MaxLongVarcharSize कहा जाता है कि मैं डिफ़ॉल्ट रूप से 8190 करने के लिए सेट पाया है है (मैं का उपयोग किया है यह दोनों पर विंडोज और उबंटू)। यह संभव है कि MySQL ODBC ड्राइवर के पास 255 पर एक समान चर सेट है।

+0

अरे किसी भी विचार को इसकी जांच कैसे करें और इसे संपादित करें? मुझे लगता है कि यह एक समान मुद्दा है –

+2

विंडोज़ पर आप अपना डेटा स्रोत चुनते हैं (नियंत्रण कक्ष में | प्रशासनिक उपकरण | ओडीबीसी स्रोत) और कॉन्फ़िगर करें पर क्लिक करें, फिर डेटा स्रोत कहने वाले बटन का चयन करें। MaxLongVarCharSize वैरिएबल ठीक है। उबंटू पर आप फ़ाइल/etc/में प्रासंगिक डेटा स्रोत में MaxLongVarcharSize = 256000 (या जो भी) लाइन जोड़ते हैं/odbc.ini। – MiG62

1

आप इस तरह के JDBC के रूप में एक और डाटाबेस ड्राइवर का उपयोग करने की कोशिश कर सकता है। मेरे अनुभव में कभी-कभी समस्या हल हो जाती है।

इसके अलावा, RMySQL पैकेज की कोशिश (वर्तमान बाइनरी, संकलित की जरूरत है। यदि आप उन्हें अपने आप को संकलित करते अनुरोध समुदाय के साथ साझा खुश करने के लिए)

शायद RODBC पैकेज का स्रोत अंतर्दृष्टि प्रदान "हो सकता है" यदि कोई हो तो डिफ़ॉल्ट लंबाई सीमाओं में। (मैं अभी तक इसे देखा नहीं है, लेकिन मैं जल्द ही और यहां एक अपडेट पोस्ट करेंगे)

+0

अरे धन्यवाद या यह पूरी तरह से ठीक काम करता है जेडीबीसी कनेक्शन। फिर भी यह स्पष्ट नहीं है कि यह ओडीबीसी कनेक्शन के साथ ठीक से काम क्यों नहीं करता है :( –

0

एक और संभावना है कि अक्षरों की पुनर्प्राप्त संख्या सीमित हो सकती है, आरओडीबीसी पैकेज में 65535 बाइट्स के लिए 'सैनिटी' चेक प्रतिबंध है - as mentioned here

संबंधित मुद्दे