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

SOUNDEX () Oracle में फ़ंक्शन

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:

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle में एक चर घोषित और प्रदर्शित कैसे करें

  2. oracle sql में ज्वाइन कीवर्ड और इनर जॉइन कीवर्ड में क्या अंतर है?

  3. Oracle में NANVL () फ़ंक्शन

  4. व्याख्या योजना और निष्पादन योजना के बीच अंतर

  5. स्प्रिंग बैच ORA-08177:एकल कार्य, SERIALIZED आइसोलेशन स्तर चलाते समय इस लेन-देन के लिए पहुँच को क्रमबद्ध नहीं कर सकता