Oracle में, REPLACE()
फ़ंक्शन आपको स्ट्रिंग के एक भाग को दूसरी स्ट्रिंग से बदलने की अनुमति देता है।
फ़ंक्शन तीन तर्कों को स्वीकार करता है:स्ट्रिंग, प्रतिस्थापित करने के लिए सबस्ट्रिंग, और प्रतिस्थापन स्ट्रिंग (सबस्ट्रिंग को प्रतिस्थापित करने के लिए)।
आप प्रतिस्थापन स्ट्रिंग को छोड़ सकते हैं, इस स्थिति में, फ़ंक्शन सबस्ट्रिंग के सभी इंस्टेंस को हटा देगा।
सिंटैक्स
वाक्य रचना इस प्रकार है:
REPLACE(char, search_string
[, replacement_string ]
)
जहां char
स्ट्रिंग है, search_string
प्रतिस्थापित करने के लिए सबस्ट्रिंग है, और replacement_string
उस सबस्ट्रिंग को प्रतिस्थापित करने के लिए स्ट्रिंग है।
उदाहरण
यहां एक बुनियादी उदाहरण दिया गया है:
SELECT
REPLACE('Barrier Island', 'Island', 'Reef')
FROM DUAL;
परिणाम:
Barrier Reef
इस मामले में हमने सबस्ट्रिंग Island
. को बदल दिया है Reef
के साथ ।
एकाधिक मिलान
यदि प्रतिस्थापित किया जाने वाला स्ट्रिंग स्ट्रिंग के भीतर कई बार होता है, तो सभी आवृत्तियों को बदल दिया जाता है:
SELECT
REPLACE('Black dogs and white dogs', 'dog', 'cat')
FROM DUAL;
परिणाम:
Black cats and white cats
कोई मिलान नहीं
यदि स्ट्रिंग में सबस्ट्रिंग नहीं होता है, तो REPLACE()
स्ट्रिंग को अपरिवर्तित लौटाता है:
SELECT
REPLACE('Barrier Island', 'to entry', 'Reef')
FROM DUAL;
परिणाम:
Barrier Island
सबस्ट्रिंग निकालें
तीसरे तर्क को छोड़ देने से स्ट्रिंग से सबस्ट्रिंग हट जाती है:
SELECT
REPLACE('Black dogs and white dogs', ' dogs')
FROM DUAL;
परिणाम:
Black and white
यदि आप बारीकी से देखें, तो आप देखेंगे कि रिक्तियां अभी भी बनी हुई हैं, क्योंकि हमने सबस्ट्रिंग में कोई स्थान निर्दिष्ट नहीं किया है।
यहाँ यह फिर से शामिल स्थान के साथ है:
SELECT
REPLACE('Black dogs and white dogs', ' dogs')
FROM DUAL;
परिणाम:
Black and white
केस संवेदनशीलता
REPLACE()
फ़ंक्शन केस-संवेदी मिलान करता है:
SELECT
REPLACE('Barrier Island', 'island', 'reef')
FROM DUAL;
परिणाम:
Barrier Island
इस उदाहरण में, मामला मेल नहीं खाता, और इसलिए मूल स्ट्रिंग को अपरिवर्तित लौटा दिया गया।
खाली स्ट्रिंग्स
यहाँ क्या होता है जब प्रत्येक दिए गए तर्क के लिए एक खाली स्ट्रिंग पास की जाती है:
SELECT
REPLACE('', 'dog', 'cat') AS "1",
REPLACE('Black dog', '', 'cat') AS "2",
REPLACE('Black dog', 'dog', '') AS "3"
FROM DUAL;
परिणाम:
1 2 3 ____ ____________ _________ Black dog Black
तो इस मामले में:
- आरंभिक स्ट्रिंग के लिए एक खाली स्ट्रिंग पास करने से एक खाली स्ट्रिंग वापस आती है।
- दूसरे तर्क के लिए एक खाली स्ट्रिंग पास करने से मूल स्ट्रिंग वापस आ जाती है।
- तीसरे आर्ग्युमेंट के लिए एक खाली स्ट्रिंग पास करने से वह स्ट्रिंग हट जाती है जिसे स्ट्रिंग से बदला जाना है।
स्पेस कैरेक्टर
एक खाली स्ट्रिंग स्पेस कैरेक्टर के समान नहीं है।
यहां बताया गया है कि जब हम खाली स्ट्रिंग को स्पेस में बदलते हैं तो क्या होता है:
SELECT
REPLACE(' ', 'dog', 'cat') AS "1",
REPLACE('Black dog', ' ', 'cat') AS "2",
REPLACE('Black dog', 'dog', ' ') AS "3"
FROM DUAL;
परिणाम:
1 2 3 ____ ______________ __________ Blackcatdog Black
इसलिए, अगर स्ट्रिंग एक स्पेस के अलावा और कुछ नहीं है, तो हम उसे दूसरी स्ट्रिंग से बदल सकते हैं:
SELECT REPLACE(' ', ' ', 'cat')
FROM DUAL;
परिणाम:
cat
अशक्त तर्क
पासिंग null
प्रत्येक तर्क के लिए एक खाली स्ट्रिंग पास करने की तरह काम करता है:
SET NULL 'null';
SELECT
REPLACE(null, 'dog', 'cat') AS "1",
REPLACE('Black dog', null, 'cat') AS "2",
REPLACE('Black dog', 'dog', null) AS "3"
FROM DUAL;
परिणाम:
1 2 3 _______ ____________ _________ null Black dog Black
डिफ़ॉल्ट रूप से, SQLcl और SQL*Plus जब भी null
. खाली स्थान लौटाते हैं SQL SELECT
. के परिणामस्वरूप होता है बयान।
हालांकि, आप SET NULL
. का उपयोग कर सकते हैं वापस करने के लिए एक अलग स्ट्रिंग निर्दिष्ट करने के लिए। यहाँ मैंने निर्दिष्ट किया है कि स्ट्रिंग null
लौटाया जाना चाहिए।
अनुपलब्ध तर्क
कॉलिंग REPLACE()
कोई तर्क पारित किए बिना त्रुटि उत्पन्न होती है:
SELECT REPLACE()
FROM DUAL;
परिणाम:
Error starting at line : 1 in command - SELECT REPLACE() FROM DUAL Error at Command Line : 1 Column : 8 Error report - SQL Error: ORA-00938: not enough arguments for function 00938. 00000 - "not enough arguments for function" *Cause: *Action:
बहुत अधिक तर्क
और बहुत से तर्कों को पारित करने से एक त्रुटि मिलती है:
SELECT REPLACE('Cat', 'a', 'b', 'c')
FROM DUAL;
परिणाम:
Error starting at line : 1 in command - SELECT REPLACE('Cat', 'a', 'b', 'c') FROM DUAL Error at Command Line : 1 Column : 8 Error report - SQL Error: ORA-00939: too many arguments for function 00939. 00000 - "too many arguments for function" *Cause: *Action: