Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

आर पैकेज आरजेडीबीसी के साथ एक MySQL चयन कथन में कॉलम का नाम बदलना

मैं उसी निराशाजनक मुद्दे में भाग गया हूं। कभी-कभी AS कीवर्ड का अपना इच्छित प्रभाव होगा, लेकिन दूसरी बार ऐसा नहीं होगा। मैं इसे ठीक से काम करने के लिए शर्तों की पहचान करने में असमर्थ था।

संक्षिप्त उत्तर: (साइमन अर्बनेक (RJDBC के लिए पैकेज मेंटेनर), येव और सेबेस्टियन को धन्यवाद! लंबा उत्तर देखें। ) एक चीज जो आप आजमा सकते हैं वह है ?useOldAliasMetadataBehavior=true का उपयोग करके अपना JDBC कनेक्शन खोलना। आपके कनेक्शन स्ट्रिंग में। उदाहरण:

drv <- JDBC("com.mysql.jdbc.Driver", "C:/JDBC/mysql-connector-java-5.1.18-bin.jar", identifier.quote="`")
conn <- dbConnect(drv, "jdbc:mysql://server/schema?useOldAliasMetadataBehavior=true", "username", "password")
query <- "SELECT `a` AS `b` FROM table"
result <- dbGetQuery(conn, query)
dbDisconnect(conn)

यह मेरे लिए काम करना समाप्त कर दिया! लंबे उत्तर . में चेतावनियों सहित अधिक विवरण देखें

लंबा उत्तर: मैंने सभी प्रकार की चीजों की कोशिश की, जिसमें विचार करना, प्रश्न बदलना, जॉइन स्टेटमेंट का उपयोग करना, जॉइन स्टेटमेंट का उपयोग न करना, ऑर्डर बाय और ग्रुप बाय स्टेटमेंट का उपयोग करना आदि शामिल हैं। मैं कभी भी यह पता लगाने में सक्षम नहीं था कि मेरे कुछ प्रश्न कॉलम का नाम बदलने में सक्षम थे। और अन्य नहीं थे।

मैंने पैकेज मेंटेनर (साइमन अर्बनेक) से संपर्क किया। यहां उन्होंने कहा है:

फिर उन्होंने सिफारिश की कि मैं यह सुनिश्चित करूँ कि मेरे पास MySQL के लिए नवीनतम JDBC ड्राइवर है। मेरे पास नवीनतम संस्करण था। हालांकि, यह मुझे सोच रहा था "शायद यह जेडीबीसी ड्राइवर के साथ एक बग है।" इसलिए, मैंने इसके लिए Google पर खोज की:mysql jdbc driver bug alias

इस क्वेरी का शीर्ष परिणाम bugs.mysql.com पर एक प्रविष्टि था। . येव, MySQL 5.1.22 का उपयोग करते हुए कहते हैं कि जब उन्होंने ड्राइवर संस्करण 5.0.4 से 5.1.5 में अपग्रेड किया, तो उनके कॉलम उपनाम ने काम करना बंद कर दिया। यह पूछे जाने पर कि क्या यह एक बग था।

सेबस्टियन ने उत्तर दिया, "नहीं, यह कोई बग नहीं है! यह ड्राइवर के बाद के सभी संस्करणों में व्यवहार का एक प्रलेखित परिवर्तन है।" और ?useOldAliasMetadataBehavior=true . का उपयोग करने का सुझाव दिया , JDBC ड्राइवर के लिए दस्तावेज का हवाला देते हुए

चेतावनी व्याख्याता: JDBC ड्राइवर के लिए दस्तावेज़ कहता है कि

मेरे पास इसका पूरी तरह से शोध करने का समय नहीं है कि इसका क्या अर्थ है। दूसरे शब्दों में, मैं नहीं जानता कि useOldAliasMetadataBehavior=true का उपयोग करने के सभी प्रभाव क्या हैं? हैं। अपने जोखिम पार इस्तेमाल करें। क्या किसी और के पास और जानकारी है?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL एक स्ट्रिंग को एक कॉलम में जोड़ता है

  2. विभिन्न पृष्ठों पर mysqli लगातार कनेक्शन का उपयोग कैसे करें

  3. InnoDB स्पष्ट रूप से झूठी खाली जगह की जानकारी क्यों देता है

  4. तालिका A से चयन करें जो तालिका B में मौजूद नहीं है

  5. क्या कक्षाओं का विस्तार करना अच्छा अभ्यास है?