7

में पूंछ पर अतिरिक्त रिक्त स्थान जोड़े जा रहे हैं जब मैं किसी तालिका में डेटा सहेज रहा हूं, तो पूंछ पर मूल्यवान अतिरिक्त स्थान जोड़े जा रहे हैं। मैंने देखा कि कॉलम की लंबाई 5 है, अगर मैं 3 char लंबाई का मान डाल रहा हूं, तो 2 अतिरिक्त रिक्त स्थान जोड़े जा रहे हैं। क्या कोई इस समस्या को हल करने के लिए कर सकता है।स्तंभ

+0

कृपया सम्मिलन कथन और तालिका परिभाषा प्रदान करें। –

उत्तर

21

क्या VARCHAR(5) के बजाय कॉलम प्रकार CHAR(5) है?

  • CHAR(x) एक स्तंभ बनाता है जो हमेशा x अक्षरों को संग्रहीत करता है, और रिक्त स्थान के साथ डेटा पैड करता है।
  • VARCHAR(x) एक स्तंभ बनाता है जो डालने वाले डेटा से मेल खाने के लिए तारों की लंबाई को भिन्न करता है।
+2

+1 वर्कर अभी भी पीछे की जगहों के साथ हो सकता है wth SET ANSI_PADDING हालांकि – gbn

+0

@gbn मैंने कभी यह नहीं देखा है कि वास्तव में यह सेटिंग क्या करती है; मुझे शोध करने के लिए धन्यवाद। अगर मैं दस्तावेज़ीकरण को सही ढंग से समझता हूं, यहां तक ​​कि ANSI_PADDING चालू होने पर, VARCHAR (x) कॉलम में केवल पिछली जगहें होंगी यदि आप उन्हें स्पष्ट रूप से वहां रखते हैं। –

+0

सही है, लेकिन यह [भ्रम] (http://stackoverflow.com/search?q=user%3A27535+ansi_padding) का कारण बन सकता है विशेष रूप से जब यह बाद के संस्करणों में चालू होगा। SQL सर्वर में – gbn

4

यह CHAR डेटा प्रकार की एक संपत्ति है। यदि आप कोई अतिरिक्त रिक्त स्थान नहीं चाहते हैं, तो आपको VARCHAR का उपयोग करने की आवश्यकता है हालांकि एक छोटे से क्षेत्र के लिए मानक CHAR की तुलना में न्यूनतम ओवरहेड है। ऐसा कहकर, ऐसा माना जाता है कि VARCHAR आजकल CHAR जितना अच्छा है।

0

CHAR चर इस अतिरिक्त पैडिंग को स्टोर करेंगे, शायद आपको VARCHAR2 चर का उपयोग करने की आवश्यकता है?

+0

कोई VARCHAR2 नहीं ... – gbn

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