Oracle
 sql >> база данни >  >> RDS >> Oracle

Функция ROWIDTONCHAR() в Oracle

В 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"

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да накарам моето Java приложение да се идентифицира пред Oracle при свързване?

  2. Основно администриране на Oracle 12c Multitenant

  3. Най-полезните заявки на AWR за надстройка на R12.2/R12.1

  4. cx Oracle ImportError

  5. Как да добавя ojdbc7 към уеб приложението на Java от Gradle?