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

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

Oracle में, RPAD() फ़ंक्शन आपको एक निश्चित वर्ण के साथ स्ट्रिंग के दाहिने हिस्से को निर्दिष्ट वर्णों तक पैड करने की अनुमति देता है।

जिस तरह से यह काम करता है, आप निर्दिष्ट करते हैं कि परिणामी स्ट्रिंग कितनी देर तक होनी चाहिए। यदि मूल स्ट्रिंग छोटी है, तो शेष स्थान में पैडिंग वर्ण भर जाता है।

सिंटैक्स

वाक्य रचना इस प्रकार है:

RPAD(expr1 , n [, expr2 ]) 

कहां:

  • expr1 और expr2 कोई भी डेटा प्रकार हो सकता है CHAR , VARCHAR2 , NCHAR , NVARCHAR2 , CLOB , या NCLOB .
  • n एक NUMBER है पूर्णांक या एक मान जिसे परोक्ष रूप से NUMBER . में परिवर्तित किया जा सकता है पूर्णांक।

फ़ंक्शन expr1 लौटाता है , दाएँ-गद्देदार लंबाई तक n expr2 . में वर्णों के अनुक्रम वाले वर्ण

यदि expr2 छोड़ा गया है, पैडिंग कैरेक्टर एक खाली है।

उदाहरण

प्रदर्शित करने के लिए यहां एक सरल उदाहरण दिया गया है:

SELECT RPAD('Cat', 25)
FROM DUAL; 

परिणाम:

 RPAD('CAT',25) ____________________________ Cat 

इस उदाहरण के प्रभाव को देखना आसान नहीं है, क्योंकि हमने स्ट्रिंग को डिफ़ॉल्ट वर्ण (एक स्थान) के साथ गद्देदार किया था, लेकिन इसका प्रभाव स्तंभ की चौड़ाई को बाहर करने का था।

नीचे एक और उदाहरण दिया गया है जो प्रभाव को बेहतर तरीके से प्रदर्शित करता है:

SELECT RPAD('Cat', 15) || 'House'
FROM DUAL; 

परिणाम:

 RPAD('CAT',15)||'HOUSE' __________________________ कैट हाउस 

दो स्ट्रिंग्स को जोड़ने से पता चलता है कि पैडिंग की मात्रा सबसे बाईं स्ट्रिंग के दाहिने हिस्से पर लागू की गई थी।

ध्यान दें कि प्रदान की गई संख्या परिणामी स्ट्रिंग की कुल चौड़ाई है - नहीं पैडिंग की मात्रा।

कोई वर्ण निर्दिष्ट करें

इस उदाहरण में मैं पैडिंग के लिए उपयोग करने के लिए एक वर्ण निर्दिष्ट करता हूं:

SELECT RPAD('Cat', 7, '!')
FROM DUAL; 

परिणाम:

 RPAD('CAT',7,'!') ____________________ Cat!!!! 

मूल स्ट्रिंग से छोटी पैडिंग

यदि दूसरा तर्क मूल स्ट्रिंग से कम है, तो कोई पैडिंग नहीं जोड़ा जाता है, और मूल स्ट्रिंग को निर्दिष्ट वर्णों की संख्या तक छोटा कर दिया जाता है:

SELECT RPAD('Cat', 2)
FROM DUAL; 

परिणाम:

 RPAD('CAT',2) ________________ Ca 

डेटाबेस उदाहरण

डेटाबेस कॉलम में मानों के दाहिने हिस्से को पैडिंग करने का एक उदाहरण यहां दिया गया है:

SELECT 
    country_name,
    RPAD(country_name, 12, '.') AS Padded
FROM countries
FETCH FIRST 5 ROWS ONLY; 

परिणाम:

 COUNTRY_NAME PADDED _______________ _______________ अर्जेंटीना अर्जेंटीना... ऑस्ट्रेलिया ऑस्ट्रेलिया... बेल्जियम बेल्जियम..... ब्राजील ब्राजील...... कनाडा कनाडा...... 

शून्य मान

यदि कोई तर्क null है परिणाम null है :

SET NULL 'null';

SELECT 
    RPAD(null, 3),
    RPAD('Cat', null),
    RPAD('Cat', 3, null)
FROM DUAL; 

परिणाम:

 RPAD(NULL,3) RPAD('CAT',NULL) RPAD('CAT',3,NULL) _______________ 

डिफ़ॉल्ट रूप से, SQLcl और SQL*Plus जब भी null . खाली स्थान लौटाते हैं SQL SELECT . के परिणामस्वरूप होता है बयान।

हालांकि, आप SET NULL . का उपयोग कर सकते हैं वापस करने के लिए एक अलग स्ट्रिंग निर्दिष्ट करने के लिए। यहाँ मैंने निर्दिष्ट किया है कि स्ट्रिंग null लौटाया जाना चाहिए।

गलत तर्क गणना

कॉलिंग RPAD() कोई तर्क पारित किए बिना एक त्रुटि देता है:

SELECT RPAD()
FROM DUAL; 

परिणाम:

पंक्ति से शुरू होने में त्रुटि:कमांड में 1 - चुनें <मेटा वर्णसेट ="utf-8"> RPAD () कमांड लाइन पर DUALError से:1 कॉलम:8 त्रुटि रिपोर्ट - SQL त्रुटि:ORA-00938:फ़ंक्शन के लिए पर्याप्त तर्क नहीं हैं00938 . 00000 - "फ़ंक्शन के लिए पर्याप्त तर्क नहीं"*कारण:*कार्रवाई:

और तर्कों की गलत संख्या पास करने से त्रुटि होती है:

SELECT RPAD('Cat', 1, '>', 2)
FROM DUAL; 

परिणाम:

पंक्ति से शुरू होने में त्रुटि:कमांड में 1 - चुनें <मेटा चारसेट ="यूटीएफ -8"> आरपीएडी ('कैट', 1, '>', 2) कमांड लाइन पर DUALError से:1 कॉलम:28 त्रुटि रिपोर्ट -एसक्यूएल त्रुटि:ORA-00939:function00939 के लिए बहुत अधिक तर्क। 00000 - "फ़ंक्शन के लिए बहुत अधिक तर्क"*कारण:*कार्रवाई:

  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 D2k फॉर्म में एक ब्लॉक से PL/SQL तालिका को पॉप्युलेट करना

  2. Oracle में अपवाद के बाद कर्सर लूप प्रोसेसिंग कैसे जारी रखें

  3. ओरेकल में संग्रहित प्रक्रिया से परिणामसेट कैसे लौटाएं?

  4. डिफ़ॉल्ट रूप से Oracle डेटाबेस का उपयोग करते समय हाइबरनेट एक बूलियन डेटाटाइप को क्या मैप करता है?

  5. HikariCP:Oracle 11g के लिए अधिकतम लाइफटाइम सेट करने के लिए किस डेटाबेस स्तर के टाइमआउट पर विचार किया जाना चाहिए