sql >> Databáze >  >> RDS >> Oracle

Funkce ROWIDTONCHAR() v Oracle

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 
 ID typu 69 znamená, že je to ROWID datový typ a ID typu 1 znamená, že je to buď VARCHAR2 nebo NVARCHARCHAR2 .

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 Gates 

Nulový argument

Pokud je argument null , výsledkem je null :

SET NULL 'null';
SELECT ROWIDTONCHAR(null)
FROM DUAL; 

Výsledek:

null

Ve 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ězec null 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ů"

  1. Mysql dotaz k dynamickému převodu řádků na sloupce

  2. Počet na základě podmínky v SQL Server

  3. Zabraňuje tento kód vkládání SQL?

  4. Jak vytvořit tabulku s více cizími klíči a nenechat se zmást