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
. खाली स्थान लौटाते हैं SQLSELECT
. के परिणामस्वरूप होता है बयान।हालांकि, आप
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 - "फ़ंक्शन के लिए बहुत अधिक तर्क"*कारण:*कार्रवाई: