Oracle डाटाबेस में, ROWIDTOCHAR()
फ़ंक्शन एक ROWID
को रूपांतरित करता है VARCHAR2
. का मान डेटा प्रकार।
सिंटैक्स
वाक्य रचना इस प्रकार है:
ROWIDTOCHAR(rowid)
उदाहरण
यहां एक उदाहरण दिया गया है:
SELECT ROWIDTOCHAR('AAATiBAAMAAAAIDAAE')
FROM DUAL;
परिणाम:
AAATiBAAMAAAAIDAAE
रूपांतरण का परिणाम हमेशा 18 वर्णों का होता है।
और यहां CHARTOROWID()
. की तुलना में परिणाम का एक डंप है फ़ंक्शन (जो ROWID
लौटाता है) चरित्र डेटा से मूल्य):
SELECT
DUMP(CHARTOROWID('AAATiBAAMAAAAIDAAE'), 17, 1, 4) AS "CHARTOROWID",
DUMP(ROWIDTOCHAR('AAATiBAAMAAAAIDAAE'), 17, 1, 4) AS "ROWIDTOCHAR"
FROM DUAL;
परिणाम:
CHARTOROWID ROWIDTOCHAR ____________________________ ________________________ Typ=69 Len=10: ^@,^A,8,81 Typ=1 Len=18: A,A,A,T
69
. की एक प्रकार की आईडी इसका मतलब है कि यह ROWID
का है डेटा प्रकार, और एक प्रकार की आईडी 1
इसका मतलब है कि यह या तो VARCHAR2
है या NVARCHARCHAR2
।
एक डेटाबेस उदाहरण
यहां एक उदाहरण दिया गया है जो किसी दिए गए ROWID
. के आधार पर डेटाबेस तालिका में एक पंक्ति देता है :
SELECT
ROWID,
FIRST_NAME,
LAST_NAME
FROM EMPLOYEES
WHERE ROWIDTOCHAR(ROWID) LIKE '%KzABa';
परिणाम:
ROWID FIRST_NAME LAST_NAME _____________________ _____________ ____________ AAATiDAAMAAALKzABa Timothy Gates
शून्य तर्क
यदि तर्क null
है , परिणाम null
. है :
SET NULL 'null';
SELECT ROWIDTOCHAR(null)
FROM DUAL;
परिणाम:
null
डिफ़ॉल्ट रूप से, SQLcl और SQL*Plus SQL SELECT
के परिणामस्वरूप जब भी कोई रिक्त मान उत्पन्न होता है, तो एक रिक्त स्थान लौटाते हैं बयान।
हालांकि, आप SET NULL
का उपयोग कर सकते हैं वापस करने के लिए एक अलग स्ट्रिंग निर्दिष्ट करने के लिए। यहाँ मैंने निर्दिष्ट किया है कि स्ट्रिंग null
लौटाया जाना चाहिए।
अवैध तर्क गणना
कॉलिंग ROWIDTOCHAR()
बिना किसी तर्क के त्रुटि उत्पन्न होती है:
SELECT ROWIDTOCHAR()
FROM DUAL;
परिणाम:
SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments"
और बहुत अधिक तर्क पारित करने से भी त्रुटि होती है:
SELECT ROWIDTOCHAR('a', 'b')
FROM DUAL;
परिणाम:
SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments"