मारियाडीबी में एक LTRIM() है फ़ंक्शन और एक LTRIM_ORACLE() समारोह। दोनों कार्य अनिवार्य रूप से एक ही काम करते हैं। लेकिन एक छोटा सा अंतर है।
अंतर
अंतर यह है कि प्रत्येक फ़ंक्शन खाली स्ट्रिंग्स से कैसे निपटता है:
LTRIM()एक स्ट्रिंग से प्रमुख रिक्त स्थान हटा देता है। जब एक खाली स्ट्रिंग पास की जाती है, तो परिणाम इस बात पर निर्भर करेगा कि आप Oracle मोड में हैं या नहीं। यदि Oracle मोड में है, तो यहnullreturns लौटाता है . अन्यथा यह एक खाली स्ट्रिंग देता है।LTRIM_ORACLE()LTRIM(). के Oracle मोड संस्करण का पर्याय है . यहLTRIM()like जैसा व्यवहार करता है Oracle मोड में (यहnullलौटाता है) जब एक खाली स्ट्रिंग पास की गई), तब भी जब Oracle मोड में न हो।
तो LTRIM_ORACLE() बिल्कुल LTRIM() . की तरह काम करता है जब ओरेकल मोड में। लेकिन जब Oracle मोड में नहीं होता है, तो फर्क सिर्फ इतना होता है कि प्रत्येक फंक्शन खाली स्ट्रिंग्स से कैसे निपटता है।
उदाहरण
इसे एक उदाहरण से सबसे अच्छी तरह समझाया गया है।
डिफ़ॉल्ट मोड
डिफ़ॉल्ट मोड में इन कार्यों की तुलना यहां दी गई है:
SET SQL_MODE=DEFAULT;
SELECT
LTRIM(''),
LTRIM_ORACLE(''); परिणाम:
+-----------+------------------+
| LTRIM('') | LTRIM_ORACLE('') |
+-----------+------------------+
| | NULL |
+-----------+------------------+ सबसे पहले, मैंने अपने सिस्टम को डिफ़ॉल्ट मोड पर सेट किया (भले ही यह शायद पहले से ही डिफ़ॉल्ट मोड में था), फिर मैंने दोनों कार्यों को एक खाली स्ट्रिंग के साथ चलाया।
हम देख सकते हैं कि LTRIM() एक खाली स्ट्रिंग देता है, जबकि LTRIM_ORACLE() रिटर्न null ।
Oracle मोड
अब इसे Oracle मोड पर सेट करते हैं और कोड को फिर से चलाते हैं:
SET SQL_MODE=ORACLE;
SELECT
LTRIM(''),
LTRIM_ORACLE(''); परिणाम:
+-----------+------------------+
| LTRIM('') | LTRIM_ORACLE('') |
+-----------+------------------+
| NULL | NULL |
+-----------+------------------+
हम देख सकते हैं कि LTRIM() अब LTRIM_ORACLE() like जैसा व्यवहार करता है ।
तो, LTRIM() . के साथ , हमें स्पष्ट रूप से Oracle मोड पर स्विच करने की आवश्यकता है इससे पहले कि हम इसे LTRIM() के Oracle संस्करण की तरह व्यवहार करें ।
LTRIM_ORACLE() दूसरी ओर, सभी मोड में उपलब्ध है, इसलिए यह हमें Oracle मोड में स्विच करने से बचाता है।