In Oracle Database, the ROWIDTONCHAR() function converts a ROWID value to NVARCHAR2 data type
It’s similar to the ROWIDTOCHAR() function, except that ROWIDTOCHAR() converts a ROWID value to VARCHAR2 data type.
Syntax
The syntax goes like this:
ROWIDTONCHAR(rowid)
Example
Here’s an example:
SELECT ROWIDTONCHAR('AAATiBAAMAAAAIDAAE')
FROM DUAL;
Result:
AAATiBAAMAAAAIDAAE
The result of the conversion is always in the national character set and is 18 characters long.
And here’s a dump of the result when compared to the CHARTOROWID() function (which returns a ROWID value from character data):
SELECT
DUMP(CHARTOROWID('AAATiBAAMAAAAIDAAE'), 17, 1, 4) AS "CHARTOROWID",
DUMP(ROWIDTONCHAR('AAATiBAAMAAAAIDAAE'), 17, 1, 4) AS "ROWIDTONCHAR"
FROM DUAL;
Result:
CHARTOROWID ROWIDTONCHAR ____________________________ __________________________ Typ=69 Len=10: ^@,^A,8,81 Typ=1 Len=36: ^@,A,^@,A
A type ID of 69 means that it’s of ROWID data type, and a type ID of 1 means that it’s either VARCHAR2 or NVARCHARCHAR2.
A Database Example
Here’s an example that returns a row in a database table, based on a given ROWID:
SELECT
ROWID,
FIRST_NAME,
LAST_NAME
FROM EMPLOYEES
WHERE ROWIDTONCHAR(ROWID) LIKE '%KzABa';
Result:
ROWID FIRST_NAME LAST_NAME _____________________ _____________ ____________ AAATiDAAMAAALKzABa Timothy Gates
Null Argument
If the argument is null, the result is null:
SET NULL 'null';
SELECT ROWIDTONCHAR(null)
FROM DUAL;
Result:
null
By default, SQLcl and SQL*Plus return a blank space whenever a null value occurs as a result of a SQL SELECT statement.
However, you can use SET NULL to specify a different string to be returned. Here I specified that the string null should be returned.
Invalid Argument Count
Calling ROWIDTONCHAR() without any arguments results in an error:
SELECT ROWIDTONCHAR()
FROM DUAL;
Result:
SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments"
And passing too many arguments also results in an error:
SELECT ROWIDTONCHAR('a', 'b')
FROM DUAL;
Result:
SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments"