2013-03-13 4 views
9

मेरे पास सीएलओबी प्रकार के डेटा के एक कॉलम के साथ एक टेबल है, वे सभी 20 बाइट्स से बहुत कम नहीं हैं, हालांकि मुझे सीएलओबी डेटा में वास्तविक स्ट्रिंग नहीं दिखाई दे रही है।SQL सर्वर में किसी चयन में CLOB प्रकार को कैसे दिखाया जाए?

उदाहरण के लिए अगर मैं SELECT * उपयोग करते हैं, CLOB प्रकार के तहत हर डेटा की तरह है:

CLOB, 8 Bytes 
CLOB, 15 Bytes 
CLOB, 9 Bytes 

लेकिन मैं सिर्फ CLOB डेटा की सामग्री देखना चाहते हैं।

मैंने कोशिश की:

SELECT DBMS_LOB.SUBSTR(ClobColumnName, 20 ,1) 

और यह काम नहीं करता है, त्रुटि है:

त्रुटि कोड: 4121, एसक्यूएल राज्य: S1000
या तो कॉलम "DBMS_LOB" या नहीं खोजा जा सका उपयोगकर्ता द्वारा परिभाषित फ़ंक्शन या कुल "DBMS_LOB.SUBSTR", या नाम संदिग्ध है।

तो क्या मैं पूछ सकता हूं कि एक प्रश्न में सीएलओबी डेटा प्रत्यक्ष प्रदर्शन के लिए वाक्यविन्यास क्या है?

मैं dbVisualizer के साथ SQL सर्वर का उपयोग कर रहा हूं।

+1

SQL सर्वर में 'clob' डेटाटाइप नहीं है। असली कॉलम डेटाटाइप क्या है? मुझे लगता है कि 'varbinary (x) '/' बाइनरी (x) '? यदि ऐसा है तो आप स्ट्रिंग को पहली जगह स्टोर करने के लिए इसका उपयोग क्यों कर रहे हैं? –

+0

@ मार्टिनस्मिथ, आप सही हैं, मैं इन भ्रमित विभिन्न एसक्यूएल भाषाओं में नया हूं। यह dbVisualizer में कॉलम विशेषता सूची पर विशाल स्तंभ आकार (2148473647) के साथ एक वर्चर (2005) डेटा प्रकार के रूप में दिखा रहा है। मुझे इस सॉफ़्टवेयर का उपयोग करना है क्योंकि मैं SQL सर्वर का प्रबंधन करने के लिए विंडोज के बजाय लिनक्स का उपयोग कर रहा हूं ... –

उत्तर

15

मैंने एक समाधान निकाला। बेहतर तरीके हो सकते हैं, कृपया टिप्पणियों में और अधिक संभावित समाधान दिखाएं।

SELECT CAST(ClobColumnName AS VARCHAR(50)) AS ClobColumnName ; 
1

मैं एक ही समस्या थी और DBeaver (http://dbeaver.jkiss.org/) का उपयोग करके इसे हल dbVisualizer के बजाय।

जब मैं डीबीवर का उपयोग करता हूं और अपने SQL सर्वर से चयन * करता हूं, तो मैं परिणाम सेट में सीएलओबी को डबल-क्लिक कर सकता हूं और यह सामग्री के साथ एक नई विंडो में खुलता है। बहुत चालाक

+0

यह डीबी विज़ुअलाइज़र पर भी काम करता है। – boutta

3

इसे डीबीवीस में देखने के लिए आपको इसे विकल्पों में बदलना होगा। सीएलओबी कॉलम के प्रदर्शन के लिए एक प्रविष्टि है।

2

मेरे पास सीएलओबी कॉलम में संदेश/डेटा संग्रहीत करने के बाद, एक कॉलम के साथ तालिका में सीएलओबी डेटा प्रकार (1000 के) है और एक समाधान सीएलओबी कॉलम में वास्तविक डेटा देखता है।

SELECT CAST(T.CLOB_COLUMNNAME AS VARCHAR(1000)) AS SAMPLEDATA 
    FROM TABLE_NAME AS T 

उपर्युक्त क्वेरी सामान्य स्ट्रिंग में सीएलओबी (कैरेक्टर बड़े ऑब्जेक्ट्स) कास्ट करें।

1

मुझे लगता है कि आप SQL सर्वर से कनेक्ट करने के लिए जेडीटीएस ड्राइवर का उपयोग कर रहे हैं। कनेक्शन के चालक गुणों में आप "यूएसईएलओबीएस" को गलत तरीके से स्ट्रिंग करने के लिए सेट कर सकते हैं।

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