En Oracle Database, el ROWIDTONCHAR()
función convierte un ROWID
valor a NVARCHAR2
tipo de datos
Es similar a ROWIDTOCHAR()
función, excepto que ROWIDTOCHAR()
convierte un ROWID
valor a VARCHAR2
tipo de datos.
Sintaxis
La sintaxis es así:
ROWIDTONCHAR(rowid)
Ejemplo
He aquí un ejemplo:
SELECT ROWIDTONCHAR('AAATiBAAMAAAAIDAAE')
FROM DUAL;
Resultado:
AAATiBAAMAAAAIDAAE
El resultado de la conversión siempre está en el juego de caracteres nacional y tiene 18 caracteres.
Y aquí hay un volcado del resultado en comparación con CHARTOROWID()
función (que devuelve un ROWID
valor de datos de caracteres):
SELECT
DUMP(CHARTOROWID('AAATiBAAMAAAAIDAAE'), 17, 1, 4) AS "CHARTOROWID",
DUMP(ROWIDTONCHAR('AAATiBAAMAAAAIDAAE'), 17, 1, 4) AS "ROWIDTONCHAR"
FROM DUAL;
Resultado:
CHARTOROWID ROWIDTONCHAR ____________________________ __________________________ Typ=69 Len=10: ^@,^A,8,81 Typ=1 Len=36: ^@,A,^@,A
Un ID de tipo de 69
significa que es de ROWID
tipo de datos y un ID de tipo de 1
significa que es VARCHAR2
o NVARCHARCHAR2
.
Un ejemplo de base de datos
Aquí hay un ejemplo que devuelve una fila en una tabla de base de datos, según un ROWID
dado. :
SELECT
ROWID,
FIRST_NAME,
LAST_NAME
FROM EMPLOYEES
WHERE ROWIDTONCHAR(ROWID) LIKE '%KzABa';
Resultado:
ROWID FIRST_NAME LAST_NAME _____________________ _____________ ____________ AAATiDAAMAAALKzABa Timothy Gates
Argumento nulo
Si el argumento es null
, el resultado es null
:
SET NULL 'null';
SELECT ROWIDTONCHAR(null)
FROM DUAL;
Resultado:
null
De forma predeterminada, SQLcl y SQL*Plus devuelven un espacio en blanco cada vez que se produce un valor nulo como resultado de un SQL SELECT
declaración.
Sin embargo, puede usar SET NULL
para especificar una cadena diferente a devolver. Aquí especifiqué que la cadena null
debe ser devuelto.
Recuento de argumentos no válidos
Llamar a ROWIDTONCHAR()
sin ningún argumento da como resultado un error:
SELECT ROWIDTONCHAR()
FROM DUAL;
Resultado:
SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments"
Y pasar demasiados argumentos también da como resultado un error:
SELECT ROWIDTONCHAR('a', 'b')
FROM DUAL;
Resultado:
SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments"