Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

ऑरैकल में चार डेटा प्रकार के साथ क्वेरी कॉलम

मुद्दा नीचे आता है कि क्या आप char . का उपयोग करते हैं या varchar2 आपके प्रश्नों में तुलना शब्दार्थ। यदि आपके पास हार्ड-कोडेड स्ट्रिंग अक्षर या char(10) . है चर, Oracle char . का उपयोग करता है तुलनात्मक अर्थशास्त्र जो पिछली सफेद जगह को अनदेखा करना है। अगर आपके पास varchar2(10) . है चर, Oracle varchar2 . का उपयोग करता है तुलना शब्दार्थ जिसमें पिछला सफेद स्थान शामिल है। इस प्रकार

 select aa 
   into v_temp 
   from abc 
  where aa in (v_aa);

एक पंक्ति लौटाएगा यदि v_aa एक char(10) . के रूप में परिभाषित किया गया है (या यदि इसे एक स्ट्रिंग अक्षर के साथ प्रतिस्थापित किया गया है) लेकिन नहीं अगर इसे varchar(10) के रूप में परिभाषित किया गया है ।

यह (कई) कारणों में से एक है कि ज्यादातर लोग char . से बचते हैं डेटा प्रकार पूरी तरह से। व्यक्तिगत रूप से, मुझे कभी-कभार होने वाले char . से कोई ऐतराज नहीं है वास्तव में निश्चित-चौड़ाई वाले डेटा के लिए (यानी char(1) झंडे और char(2) . के लिए राज्य कोड के लिए) भले ही char . का उपयोग करने का कोई लाभ नहीं है varchar2 . से अधिक उन परिदृश्यों में। ऐसी किसी भी चीज़ के लिए जो निश्चित-चौड़ाई नहीं है, हालांकि, char . का उपयोग करके कुछ समझ नहीं आया। आप Oracle को ज़रूरत से ज़्यादा जगह लेने के लिए मजबूर कर रहे हैं और स्ट्रिंग तुलना शब्दार्थ (अन्य मुद्दों के बीच) के दो सेटों से निपटने के लिए अपने लिए और अधिक काम कर रहे हैं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एसक्लप्लस रिमोट कनेक्शन ओआरए-21561 दे रहा है

  2. एक संग्रहित प्रक्रिया में एक चर के लिए एक चयन असाइन करें

  3. ओरेकल एसक्यूएल हमें ग्रुप बाय क्लॉज में कॉलम एलियासेस का उपयोग करने की अनुमति क्यों नहीं देता है?

  4. Oracle sql - किसी फ़ंक्शन के भीतर दिनांक घटाव

  5. ORA-04091:तालिका [blah] उत्परिवर्तित हो रही है, ट्रिगर/फ़ंक्शन इसे नहीं देख सकता है