V databázi Oracle, ROWIDTOCHAR()
funkce převede ROWID
hodnotu na VARCHAR2
datový typ.
Syntaxe
Syntaxe vypadá takto:
ROWIDTOCHAR(rowid)
Příklad
Zde je příklad:
SELECT ROWIDTOCHAR('AAATiBAAMAAAAIDAAE')
FROM DUAL;
Výsledek:
AAATiBAAMAAAAIDAAE
Výsledek převodu je vždy 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(ROWIDTOCHAR('AAATiBAAMAAAAIDAAE'), 17, 1, 4) AS "ROWIDTOCHAR"
FROM DUAL;
Výsledek:
CHARTOROWID ROWIDTOCHAR ____________________________ ________________________ Typ=69 Len=10:^@,^A,8,81 Typ=1 A, pre,A,T>ID typu
69
znamená, že má hodnotuROWID
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 ROWIDTOCHAR(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 ROWIDTOCHAR(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í
ROWIDTOCHAR()
bez jakýchkoli argumentů vede k chybě:SELECT ROWIDTOCHAR() 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 ROWIDTOCHAR('a', 'b') FROM DUAL;
Výsledek:
Chyba SQL:ORA-00909:neplatný počet argumentů00909. 00000 - "neplatný počet argumentů"