V databázi Oracle, ROWIDTONCHAR()
funkce převádí ROWID
hodnotu na NVARCHAR2
datový typ
Je to podobné jako ROWIDTOCHAR()
funkce kromě toho ROWIDTOCHAR()
převede ROWID
hodnotu na VARCHAR2
datový typ.
Syntaxe
Syntaxe vypadá takto:
ROWIDTONCHAR(rowid)
Příklad
Zde je příklad:
SELECT ROWIDTONCHAR('AAATiBAAMAAAAIDAAE')
FROM DUAL;
Výsledek:
AAATiBAAMAAAAIDAAE
Výsledek převodu je vždy v národní znakové sadě a je dlouhý 18 znaků.
A zde je výpis výsledku ve srovnání s CHARTOROWID()
funkce (která vrací ROWID
hodnota ze znakových dat):
SELECT
DUMP(CHARTOROWID('AAATiBAAMAAAAIDAAE'), 17, 1, 4) AS "CHARTOROWID",
DUMP(ROWIDTONCHAR('AAATiBAAMAAAAIDAAE'), 17, 1, 4) AS "ROWIDTONCHAR"
FROM DUAL;
Výsledek:
CHARTOROWID ROWIDTONCHAR ____________________________ __________________________ Typ=69 Len=10:^@,^A,8,81 ,^ A,^A,^A,^A=1 Len=3ID typu
69
znamená, že je toROWID
datový typ a ID typu1
znamená, že je to buďVARCHAR2
neboNVARCHARCHAR2
.Příklad databáze
Zde je příklad, který vrací řádek v databázové tabulce na základě daného
ROWID
:SELECT ROWID, FIRST_NAME, LAST_NAME FROM EMPLOYEES WHERE ROWIDTONCHAR(ROWID) LIKE '%KzABa';
Výsledek:
ROWID FIRST_NAME LAST_NAME _____________________ _____________ ____________ AAATiDAAMAAALKzABa Timothy GatesNulový argument
Pokud je argument
null
, výsledkem jenull
:SET NULL 'null'; SELECT ROWIDTONCHAR(null) FROM DUAL;
Výsledek:
nullVe výchozím nastavení vrátí SQLcl a SQL*Plus prázdné místo, kdykoli se v důsledku příkazu SQL
SELECT
objeví hodnota null prohlášení.Můžete však použít
SET NULL
určit jiný řetězec, který má být vrácen. Zde jsem uvedl, že řetězecnull
by měl být vrácen.Neplatný počet argumentů
Volání
ROWIDTONCHAR()
bez jakýchkoli argumentů vede k chybě:SELECT ROWIDTONCHAR() FROM DUAL;
Výsledek:
Chyba SQL:ORA-00909:neplatný počet argumentů00909. 00000 - "neplatný počet argumentů"A předání příliš mnoha argumentů také vede k chybě:
SELECT ROWIDTONCHAR('a', 'b') FROM DUAL;
Výsledek:
Chyba SQL:ORA-00909:neplatný počet argumentů00909. 00000 - "neplatný počet argumentů"