sql >> Database teknologi >  >> RDS >> Oracle

ROWIDTOCHAR() Funktion i Oracle

I Oracle Database er ROWIDTOCHAR() funktion konverterer en ROWID værdi til VARCHAR2 datatype.

Syntaks

Syntaksen ser sådan ud:

ROWIDTOCHAR(rowid)

Eksempel

Her er et eksempel:

SELECT ROWIDTOCHAR('AAATiBAAMAAAAIDAAE')
FROM DUAL;

Resultat:

AAATiBAAMAAAAIDAAE

Resultatet af konverteringen er altid 18 tegn langt.

Og her er et dump af resultatet sammenlignet med CHARTOROWID() funktion (som returnerer en ROWID værdi fra tegndata):

SELECT 
    DUMP(CHARTOROWID('AAATiBAAMAAAAIDAAE'), 17, 1, 4) AS "CHARTOROWID",
    DUMP(ROWIDTOCHAR('AAATiBAAMAAAAIDAAE'), 17, 1, 4) AS "ROWIDTOCHAR"
FROM DUAL;

Resultat:

                 CHARTOROWID              ROWIDTOCHAR 
____________________________ ________________________ 
Typ=69 Len=10: ^@,^A,8,81    Typ=1 Len=18: A,A,A,T   

Et type-id på 69 betyder, at den er af ROWID datatype og et type-id på 1 betyder, at det er enten VARCHAR2 eller NVARCHARCHAR2 .

Et databaseeksempel

Her er et eksempel, der returnerer en række i en databasetabel baseret på en given ROWID :

SELECT 
    ROWID,
    FIRST_NAME,
    LAST_NAME
FROM EMPLOYEES
WHERE ROWIDTOCHAR(ROWID) LIKE '%KzABa';

Resultat:

                ROWID    FIRST_NAME    LAST_NAME 
_____________________ _____________ ____________ 
AAATiDAAMAAALKzABa    Timothy       Gates       

Nul-argument

Hvis argumentet er null , resultatet er null :

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

Resultat:

null

Som standard returnerer SQLcl og SQL*Plus et tomt mellemrum, når der opstår en null-værdi som et resultat af en SQL SELECT erklæring.

Du kan dog bruge SET NULL for at angive en anden streng, der skal returneres. Her specificerede jeg, at strengen null skal returneres.

Ugyldigt argumentantal

Ringer til ROWIDTOCHAR() uden argumenter resulterer i en fejl:

SELECT ROWIDTOCHAR()
FROM DUAL;

Resultat:

SQL Error: ORA-00909: invalid number of arguments
00909. 00000 -  "invalid number of arguments"

Og at sende for mange argumenter resulterer også i en fejl:

SELECT ROWIDTOCHAR('a', 'b')
FROM DUAL;

Resultat:

SQL Error: ORA-00909: invalid number of arguments
00909. 00000 -  "invalid number of arguments"

  1. konverter MySQL SET datatype til Postgres

  2. psql ugyldig kommando \N under gendannelse af sql

  3. Få liste over tabeller med eller uden primær nøglebegrænsning i alle databaser fra SQL Server Instance - SQL Server / TSQL Tutorial Del 61

  4. DATENAME() Eksempler i SQL Server