Oracle में, SOUNDEX()
फ़ंक्शन एक वर्ण स्ट्रिंग देता है जिसमें इसके तर्क का ध्वन्यात्मक प्रतिनिधित्व होता है। इसे साउंडेक्स स्ट्रिंग के रूप में जाना जाता है।
साउंडएक्स ध्वनि द्वारा नामों को अनुक्रमित करने के लिए एक ध्वन्यात्मक एल्गोरिथ्म है, जैसा कि अंग्रेजी में उच्चारित किया गया है। यदि दो शब्द एक जैसे लगते हैं, तो उनमें एक ही साउंडेक्स स्ट्रिंग होनी चाहिए। अगर दो शब्द एक जैसे लगते हैं, लेकिन बिल्कुल एक जैसे नहीं हैं, तो उनकी साउंडेक्स स्ट्रिंग एक जैसी दिख सकती है लेकिन बिल्कुल एक जैसी नहीं।
फ़ंक्शन एक तर्क को स्वीकार करता है:वह स्ट्रिंग जिसके लिए साउंडेक्स स्ट्रिंग को वापस करना है।
सिंटैक्स
वाक्य रचना इस प्रकार है:
SOUNDEX(char)
जहां char
वह स्ट्रिंग है जिसके लिए साउंडेक्स स्ट्रिंग को वापस करना है। यह किसी भी प्रकार के डेटा का हो सकता है CHAR
, VARCHAR2
, NCHAR
, या NVARCHAR2
. वापसी मान तर्क के समान डेटा प्रकार है।
उदाहरण
यहां एक बुनियादी उदाहरण दिया गया है:
SELECT SOUNDEX('Bat')
FROM DUAL;
परिणाम:
B300
यहां एक और उदाहरण दिया गया है जो समान, लेकिन अलग, ध्वनि वाले शब्दों से लौटाए गए साउंडेक्स स्ट्रिंग की तुलना करता है:
SELECT
SOUNDEX('Bat'),
SOUNDEX('Cat'),
SOUNDEX('Cap')
FROM DUAL;
परिणाम:
SOUNDEX('BAT') SOUNDEX('CAT') SOUNDEX('CAP') _________________ _________________ _________________ B300 C300 C100
और यहाँ एक है जो उन शब्दों की तुलना करता है जो एक जैसे नहीं लगते:
SELECT
SOUNDEX('Ponzi'),
SOUNDEX('Bracket'),
SOUNDEX('Heavy')
FROM DUAL;
परिणाम:
SOUNDEX('PONZI') SOUNDEX('BRACKET') SOUNDEX('HEAVY') ___________________ _____________________ ___________________ P520 B623 H100
सटीक मिलान
यहां उन शब्दों के जोड़े का उदाहरण दिया गया है, जिनका साउंडेक्स स्ट्रिंग से मेल खाता है, भले ही वे अलग-अलग शब्द हों, जिनका अर्थ अलग-अलग हो:
SELECT
SOUNDEX('Dam') AS Dam,
SOUNDEX('Damn') AS Damn,
SOUNDEX('Too') AS Too,
SOUNDEX('Two') AS Two
FROM DUAL;
परिणाम:
DAM DAMN TOO TWO _______ _______ _______ _______ D500 D500 T000 T000
डेटाबेस उदाहरण
डेटाबेस क्वेरी से साउंडेक्स स्ट्रिंग प्राप्त करने का एक उदाहरण यहां दिया गया है:
SELECT
country_name,
SOUNDEX(country_name)
FROM countries
FETCH FIRST 10 ROWS ONLY;
परिणाम:
COUNTRY_NAME SOUNDEX(COUNTRY_NAME) _______________ ________________________ Argentina A625 Australia A236 Belgium B425 Brazil B624 Canada C530 Switzerland S326 China C500 Germany G655 Denmark D562 Egypt E213
हम SOUNDEX()
. का भी उपयोग कर सकते हैं एक WHERE
. में केवल उन पंक्तियों को वापस करने के लिए खंड जो किसी दिए गए शब्द की तरह लगती हैं:
SELECT
employee_id,
first_name,
last_name
FROM employees
WHERE SOUNDEX(first_name) = SOUNDEX('Stephen');
परिणाम:
EMPLOYEE_ID FIRST_NAME LAST_NAME ______________ _____________ ____________ 100 Steven King 128 Steven Markle 138 Stephen Stiles
खाली स्ट्रिंग
यहाँ क्या होता है जब प्रत्येक दिए गए तर्क के लिए एक खाली स्ट्रिंग पास की जाती है:
SET NULL 'null';
SELECT SOUNDEX('')
FROM DUAL;
परिणाम:
null
डिफ़ॉल्ट रूप से, SQLcl और SQL*Plus जब भी null
. खाली स्थान लौटाते हैं SQL SELECT
. के परिणामस्वरूप होता है बयान।
हालांकि, आप SET NULL
. का उपयोग कर सकते हैं वापस करने के लिए एक अलग स्ट्रिंग निर्दिष्ट करने के लिए। यहाँ मैंने निर्दिष्ट किया है कि स्ट्रिंग null
लौटाया जाना चाहिए।
शून्य तर्क
पासिंग null
रिटर्न null
:
SELECT SOUNDEX(null)
FROM DUAL;
परिणाम:
null
अनुपलब्ध तर्क
कॉलिंग SOUNDEX()
कोई तर्क पारित किए बिना त्रुटि उत्पन्न होती है:
SELECT SOUNDEX()
FROM DUAL;
परिणाम:
Error starting at line : 1 in command - SELECT SOUNDEX() FROM DUAL Error at Command Line : 1 Column : 8 Error report - SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments" *Cause: *Action:
और बहुत अधिक तर्क देने से भी त्रुटि होती है:
SELECT SOUNDEX('Gosh', 'Dang')
FROM DUAL;
परिणाम:
Error starting at line : 1 in command - SELECT SOUNDEX('Gosh', 'Dang') FROM DUAL Error at Command Line : 1 Column : 8 Error report - SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments" *Cause: *Action: