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
69znamená, že je toROWIDdatový typ a ID typu1znamená, že je to buďVARCHAR2neboNVARCHARCHAR2.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
SELECTobjeví hodnota null prohlášení.Můžete však použít
SET NULLurčit jiný řetězec, který má být vrácen. Zde jsem uvedl, že řetězecnullby 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ů"