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

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

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"

  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. ऑरैकल tmstmp फ़ील्ड से मिलीसेकंड निकालना

  3. Oracle SQL एस्केप कैरेक्टर ('&' के लिए)

  4. SQL डेवलपर का उपयोग करके Oracle में स्कीमा कैसे बनाएं?

  5. OracleDataSource बनाम Oracle UCP PoolDataSource