मेरे पास एक विरासत PostgreSQL डेटाबेस स्रोत (ODBC) है जिसे मैं SSIS का उपयोग करके नए SQL सर्वर स्कीमा में स्थानांतरित करने का प्रयास कर रहा हूं। मुझे एक चेतावनी मिल रही है:
'पंक्ति द्वारा पंक्ति' लाने की विधि लागू की जाती है क्योंकि तालिका में LOB कॉलम (s) होता है। स्तंभ सामग्री LOB है
बात यह है कि किसी भी कॉलम को वास्तव में एलओबी होने की आवश्यकता नहीं है। कुछ ऐसे हैं जो TEXT प्रकार हैं, लेकिन एक varchar (अधिकतम) के भीतर आसानी से फिट हो सकते हैं। हालांकि, अजनबी भी, अधिकांश पहले से ही varchars हैं, लेकिन ऐसा लगता है कि varchar (128) पर कुछ भी व्यवहार किया जा रहा है जैसे कि यह एक LOB था (अग्रिम गुणों में, डेटा प्रकार DT_NTEXT है)।
मैंने इवेंट को मैन्युअल SQL कमांड करने की कोशिश की, जहाँ मैंने स्पष्ट रूप से प्रत्येक स्ट्रिंग प्रकार को चयनित स्टेटमेंट में एक उपयुक्त लंबाई के varchar में डाला, और वे अभी भी ODBC स्रोत में DT_NTEXT के रूप में सेट किए जा रहे हैं।
मैं एक डीबीए नहीं हूं, इसलिए यह पूरी तरह से संभव है कि मैं वास्तव में बेवकूफ कुछ कर रहा हूं। मैं यह सुनिश्चित करने के लिए सबसे अच्छा तरीका जानना चाहूंगा कि प्रकार varchars के रूप में समाप्त होते हैं इसलिए मैं बैच ला सकता हूं। कोई विचार?
यदि यह मायने रखता है, तो मैं विज़ुअल स्टूडियो 2013 के अंदर SSIS-BI 2014 का उपयोग कर रहा हूं।
varchar(max)
यह कहते हुए केवल आशुलिपि का उल्लेख किया है कि कॉलम डेटा अधिकतम varchar आकार के भीतर फिट हो सकता है, जो कि लगभग 4000 है, SSIS के उद्देश्यों के लिए, मुझे लगता है। मैं वास्तव में कुछ भी नहीं कर रहा हूँ varchar(max)
; हालाँकि, मैंने कुछ कॉलम डाले varchar(4000)
, बस सुरक्षित रहने के लिए।