2012-08-23 48 views
13

मैं यह करने के कोशिश कर रहा हूँ:वर्चर (अधिकतम) से अधिक स्ट्रिंग var को कैसे स्टोर करें?

DECLARE @myVar VARCHAR(MAX) 
Loop with cursor 
select @myVar = @myVar + bla bla bla 
end loop 

जब पाश समाप्त होता है, @myVar अधूरा है, केवल 8000 अक्षर हैं।

मैंने टेक्स्ट का उपयोग करने का प्रयास किया है, लेकिन स्थानीय वर्रों की अनुमति नहीं है।

इस मामले का अच्छा समाधान क्या होगा?

xml var? वेब के माध्यम से

How do I pass a string parameter greater than varchar(8000) in SQL Server 2000?

Check if concatenating to a varchar(max) will go beyond max allowable characters

और दूसरों:

मैं सिर्फ इस पोस्ट ध्यान दिया है।

सम्मान।

+3

'वर्कर (अधिकतम) 'से बड़ा ?? यह 2 जीबी डेटा है - 2 अरब वर्ण - यह 200 से अधिक बार ** पूरे * युद्ध और शांति * का आकार लियो टॉल्स्टोज द्वारा उपन्यास है .... और यह ** आपके लिए पर्याप्त नहीं है?!? * * –

+1

@marc_s: सवाल यह पूछता है कि पोस्टर के चर में केवल लूप के अंत में 8000 वर्ण क्यों हैं; मुझे लगता है कि शीर्षक भ्रामक है। शायद पोस्टर यह स्पष्ट करने के लिए संपादित कर सकता है कि यहां वास्तव में क्या पूछा जा रहा है। –

+0

@ केनहाइट: इस समस्या को ठीक करने के तरीके के बारे में मेरी प्रतिक्रिया देखें। –

उत्तर

26

गंभीरता से - VARCHAR(MAX) 2 तक जमा कर सकते डेटा के जीबी - न केवल 8000 अक्षर .....

इस प्रयास करें:

DECLARE @myVar VARCHAR(MAX) = '' 

DECLARE @ix INT = 1 

WHILE @ix < 1000 
BEGIN 
    set @myVar = @myVar + CAST('bla bla bla' AS VARCHAR(MAX)) 
    SET @ix = @ix + 1 
END 

SELECT DATALENGTH(@myvar) 

यह मान प्रदान करेगा उच्च से 8000 अक्षर 1000 पुनरावृत्तियों के बाद।

बिंदु है: यदि आप varchar(max) उपयोग कर रहे हैं, आपको यह सुनिश्चित करने के लिए हमेशा varchar(max) स्पष्ट रूप से करने के लिए अपने सभी तार डाली बनाने की जरूरत है - के रूप में मैं इस उदाहरण में किया था। अन्यथा, SQL सर्वर "नियमित" varchar प्रसंस्करण पर वापस आ जाएगा, और यह वास्तव में 8000 वर्णों तक सीमित है ....

+1

यह स्पष्ट कलाकार के बिना मेरे लिए ठीक काम करता है। जब आपको सावधानी बरतनी है तो आपको सावधानी बरतनी है। –

+0

ठीक है, मैं इसे आजमाउंगा। – Eduardo

+1

@AaronBertrand: आह .... दिलचस्प - हाँ - यह ठीक काम करता प्रतीत होता है - यहां तक ​​कि कलाकार के बिना भी .... हम्म .... –