Oracle डाटाबेस में, CHARTOROWID()
फ़ंक्शन एक स्ट्रिंग मान को ROWID
. में कनवर्ट करता है डेटा प्रकार।
सिंटैक्स
वाक्य रचना इस प्रकार है:
CHARTOROWID(char)
जहां char
CHAR
. में से एक है , VARCHAR2
, NCHAR
, या NVARCHAR2
डेटा प्रकार।
उदाहरण
प्रदर्शित करने के लिए यहां एक उदाहरण दिया गया है:
SELECT
CHARTOROWID('AAATiDAAMAAALKzABa')
FROM DUAL;
परिणाम:
AAATiDAAMAAALKzABa
हालांकि यह एक त्वरित और आसान उदाहरण है, यह हमें यह नहीं दिखाता है कि अंतिम परिणाम ROWID
प्रकार का है ।
हालांकि, हम इस तरह पता लगा सकते हैं:
SELECT
DUMP('AAATiDAAMAAALKzABa', 17, 1, 5) AS "r1",
DUMP(CHARTOROWID('AAATiDAAMAAALKzABa'), 17, 1, 5) AS "r2"
FROM DUAL;
परिणाम:
r1 r2 ___________________________ _______________________________ Typ=96 Len=18: A,A,A,T,i Typ=69 Len=10: ^@,^A,8,83,^C
यहाँ, मैंने DUMP()
. का उपयोग किया है पहले पांच वर्णों का आंतरिक प्रतिनिधित्व प्राप्त करने के लिए कार्य करें।
लेकिन महत्वपूर्ण बात यह है कि यह फ़ंक्शन टाइप आईडी भी देता है। पहला है 96
, जो CHAR
. के लिए टाइप आईडी है और NCHAR
, और दूसरा है 69
, जो ROWID
. के लिए टाइप आईडी है ।
तो यह दर्शाता है कि CHARTOROWID()
फ़ंक्शन वास्तव में एक स्ट्रिंग को ROWID
. में परिवर्तित करता है .
एक डेटाबेस उदाहरण
यहां एक उदाहरण दिया गया है जो किसी दिए गए ROWID
. के आधार पर डेटाबेस तालिका में एक पंक्ति देता है :
SELECT
ROWID,
FIRST_NAME,
LAST_NAME
FROM EMPLOYEES
WHERE ROWID = CHARTOROWID('AAATiDAAMAAALKzABa');
परिणाम:
ROWID FIRST_NAME LAST_NAME _____________________ _____________ ____________ AAATiDAAMAAALKzABa Timothy Gates
अमान्य ROWID
एक अमान्य ROWID
पास करना एक त्रुटि में परिणाम:
SELECT CHARTOROWID('oops')
FROM DUAL;
परिणाम:
Error report - ORA-01410: invalid ROWID
शून्य तर्क
यदि तर्क null
है , परिणाम null
. है :
SET NULL 'null';
SELECT CHARTOROWID(null)
FROM DUAL;
परिणाम:
null
डिफ़ॉल्ट रूप से, SQLcl और SQL*Plus जब भी SQL SELECT
के परिणामस्वरूप कोई रिक्त मान उत्पन्न होता है तो एक रिक्त स्थान लौटाते हैं बयान।
हालांकि, आप SET NULL
का उपयोग कर सकते हैं वापस करने के लिए एक अलग स्ट्रिंग निर्दिष्ट करने के लिए। यहाँ मैंने निर्दिष्ट किया है कि स्ट्रिंग null
वापस किया जाना चाहिए।
अवैध तर्क गणना
कॉलिंग CHARTOROWID()
बिना किसी तर्क के त्रुटि उत्पन्न होती है:
SELECT CHARTOROWID()
FROM DUAL;
परिणाम:
SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments"
और बहुत अधिक तर्क देने से भी त्रुटि होती है:
SELECT CHARTOROWID('AAATiDAAMAAALKzABa', 'AAATiDAAMAAALKzABa')
FROM DUAL;
परिणाम:
SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments"