2012-11-29 10 views
25

दिखाता है कि मैं यह पाया कि MySQL वर्कबेंच क्वेरी परिणाम को BLOB के रूप में दिखाता है। उदाहरण के लिए: SELECT INET_NTOA(167773449) ->BLOBMySQL वर्कबेंच परिणामस्वरूप बीएलओबी

अगर मैं करने के लिए 'दृश्य मान' का चयन मैं निर्धारित कर सकते हैं पाठ मान '10 है .0.5.9 'लेकिन यह काफी परेशान जब मैं एकाधिक पंक्तियों का चयन करें और सामग्री को नज़र चाहते हैं।

क्या इसके आसपास कोई रास्ता है या यह उपकरण की सीमा है?

उत्तर

46

पृष्ठभूमि: यह समस्या तब होती है जब बाइनरी स्ट्रिंग मान (बिनरी/वर्बिनरी प्रकार) परिणाम में वापस आते हैं। द्विआधारी तारों में शून्य बाइट होते हैं और कुछ कारणों से, स्पष्ट रूप से सुरक्षा, डिफ़ॉल्ट रूप से नहीं दिखाया गया है। बाइनरी स्ट्रिंग्स here के बारे में अधिक जानकारी।

रिपोर्ट किए गए उदाहरण में भी SELECT INET_NTOA(167773449), फ़ंक्शन बाइनरी स्ट्रिंग देता है। संदर्भ के लिए this देखें।

समाधान: MySQL Workbench v5.2.22 बाद से, यह वरीयताओं को दिखाने या इस तरह के मूल्यों छिपाने का निर्णय के माध्यम से स्थापित किया जा सकता।

  1. MySQL Workbench में, पर जाएँ: "संपादित करें -> प्राथमिकताएं ... ->एसक्यूएल प्रश्नों" या "संपादित करें -> प्राथमिकताएं ... ->एसक्यूएल संपादक" (निर्भर करता है आपके पास वर्कबेंच के किस संस्करण पर है)।
  2. वास्तविक मूल्य दिखाने के लिए 'उपचार बिनरी/वर्बिनरी को गैर-मूल वर्ण स्ट्रिंग के रूप में' विकल्प देखें।

संदर्भ: मूल मुद्दा सूचित किया गया है और ठीक here साथ जवाब दिया।

+2

Workbench 6.2 में, सेटिंग के अंतर्गत 'संपादित है> एसक्यूएल संपादक -> एसक्यूएल Execution' –

+0

6.2 में कहीं जाने वाली श्रेणी में प्रतिगमन नहीं है: यह काम नहीं करता। –

4

आप क्या कर सकते हैं अपने बीएलओबी प्रकार को एक स्ट्रिंग में कास्ट करें। यह आपके चयन कथन को ब्राउज़ करते समय आपको अपने बीएलओबी प्रकार में जो कुछ भी देखेगा, उस पर आपको नज़र डालने की अनुमति देगा। > प्राथमिकताएं - -

SELECT CAST('blob_column' AS CHAR(10000) CHARACTER SET utf8) FROM 'DB_table'; 
+2

वर्कबेंच बग के लिए उत्कृष्ट कामकाज! – TrogDor