В Oracle Database, ROWIDTONCHAR()
функция преобразува ROWID
стойност на NVARCHAR2
тип данни
Той е подобен на ROWIDTOCHAR()
функция, с изключение на ROWIDTOCHAR()
преобразува ROWID
стойност на VARCHAR2
тип данни.
Синтаксис
Синтаксисът е така:
ROWIDTONCHAR(rowid)
Пример
Ето един пример:
SELECT ROWIDTONCHAR('AAATiBAAMAAAAIDAAE')
FROM DUAL;
Резултат:
AAATiBAAMAAAAIDAAE
Резултатът от преобразуването винаги е в националния набор от знаци и е с дължина 18 знака.
И ето извлечение на резултата в сравнение с CHARTOROWID()
функция (която връща ROWID
стойност от символни данни):
SELECT
DUMP(CHARTOROWID('AAATiBAAMAAAAIDAAE'), 17, 1, 4) AS "CHARTOROWID",
DUMP(ROWIDTONCHAR('AAATiBAAMAAAAIDAAE'), 17, 1, 4) AS "ROWIDTONCHAR"
FROM DUAL;
Резултат:
CHARTOROWID ROWIDTONCHAR ____________________________ __________________________ Typ=69 Len=10: ^@,^A,8,81 Typ=1 Len=36: ^@,A,^@,A
Идентификатор на тип 69
означава, че е от ROWID
тип данни и идентификатор на тип 1
означава, че е или VARCHAR2
или NVARCHARCHAR2
.
Пример за база данни
Ето пример, който връща ред в таблица на база данни въз основа на даден ROWID
:
SELECT
ROWID,
FIRST_NAME,
LAST_NAME
FROM EMPLOYEES
WHERE ROWIDTONCHAR(ROWID) LIKE '%KzABa';
Резултат:
ROWID FIRST_NAME LAST_NAME _____________________ _____________ ____________ AAATiDAAMAAALKzABa Timothy Gates
Нулев аргумент
Ако аргументът е null
, резултатът е null
:
SET NULL 'null';
SELECT ROWIDTONCHAR(null)
FROM DUAL;
Резултат:
null
По подразбиране SQLcl и SQL*Plus връщат празно пространство, когато се появи нулева стойност в резултат на SQL SELECT
изявление.
Въпреки това, можете да използвате SET NULL
за да посочите различен низ, който да бъде върнат. Тук посочих, че низът null
трябва да бъдат върнати.
Невалиден брой аргументи
Извикване на ROWIDTONCHAR()
без никакви аргументи води до грешка:
SELECT ROWIDTONCHAR()
FROM DUAL;
Резултат:
SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments"
И предаването на твърде много аргументи също води до грешка:
SELECT ROWIDTONCHAR('a', 'b')
FROM DUAL;
Резултат:
SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments"