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

Funkce ROWIDTOCHAR() v Oracle

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 

ID typu 69 znamená, že má hodnotu 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 ROWIDTOCHAR(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 ROWIDTOCHAR(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í 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ů"

  1. Jak vyplnit číslo úvodními nulami v MariaDB

  2. Nástroje pro generování diagramu databázových tabulek pomocí PostgreSQL?

  3. Jak přidat uživatelskou skupinu Active Directory jako přihlášení na SQL Server

  4. Úvod do TimescaleDB