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