W bazie danych Oracle ROWIDTONCHAR()
funkcja konwertuje ROWID
wartość do NVARCHAR2
typ danych
Jest podobny do ROWIDTOCHAR()
funkcja, z wyjątkiem tego, że ROWIDTOCHAR()
konwertuje ROWID
wartość do VARCHAR2
typ danych.
Składnia
Składnia wygląda tak:
ROWIDTONCHAR(rowid)
Przykład
Oto przykład:
SELECT ROWIDTONCHAR('AAATiBAAMAAAAIDAAE')
FROM DUAL;
Wynik:
AAATiBAAMAAAAIDAAE
Wynik konwersji zawsze znajduje się w zestawie znaków narodowych i ma długość 18 znaków.
A oto zrzut wyniku w porównaniu z CHARTOROWID()
funkcja (która zwraca ROWID
wartość z danych znakowych):
SELECT
DUMP(CHARTOROWID('AAATiBAAMAAAAIDAAE'), 17, 1, 4) AS "CHARTOROWID",
DUMP(ROWIDTONCHAR('AAATiBAAMAAAAIDAAE'), 17, 1, 4) AS "ROWIDTONCHAR"
FROM DUAL;
Wynik:
CHARTOROWID ROWIDTONCHAR ____________________________ __________________________ Typ=69 Len=10: ^@,^A,8,81 Typ=1 Len=36: ^@,A,^@,A
Identyfikator typu 69
oznacza, że ma ROWID
typ danych i identyfikator typu 1
oznacza, że jest to VARCHAR2
lub NVARCHARCHAR2
.
Przykład bazy danych
Oto przykład, który zwraca wiersz w tabeli bazy danych na podstawie podanego ROWID
:
SELECT
ROWID,
FIRST_NAME,
LAST_NAME
FROM EMPLOYEES
WHERE ROWIDTONCHAR(ROWID) LIKE '%KzABa';
Wynik:
ROWID FIRST_NAME LAST_NAME _____________________ _____________ ____________ AAATiDAAMAAALKzABa Timothy Gates
Argument zerowy
Jeśli argument jest null
, wynik to null
:
SET NULL 'null';
SELECT ROWIDTONCHAR(null)
FROM DUAL;
Wynik:
null
Domyślnie SQLcl i SQL*Plus zwracają pustą spację za każdym razem, gdy w wyniku SELECT
wystąpi wartość null oświadczenie.
Możesz jednak użyć SET NULL
aby określić inny ciąg do zwrócenia. Tutaj określiłem, że ciąg null
należy zwrócić.
Nieprawidłowa liczba argumentów
Wywołanie ROWIDTONCHAR()
bez żadnych argumentów powoduje błąd:
SELECT ROWIDTONCHAR()
FROM DUAL;
Wynik:
SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments"
Przekazywanie zbyt wielu argumentów również skutkuje błędem:
SELECT ROWIDTONCHAR('a', 'b')
FROM DUAL;
Wynik:
SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments"