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

ROWIDTONCHAR() Funktion i Oracle

I Oracle Database er ROWIDTONCHAR() funktion konverterer en ROWID værdi til NVARCHAR2 datatype

Det ligner ROWIDTOCHAR() funktion, bortset fra at ROWIDTOCHAR() konverterer en ROWID værdi til VARCHAR2 datatype.

Syntaks

Syntaksen ser sådan ud:

ROWIDTONCHAR(rovid) 

Eksempel

Her er et eksempel:

VÆLG ROWIDTONCHAR('AAATiBAAMAAAAIDAAE')FRA DUAL; 

Resultat:

AAATiBAAMAAAAIDAAE

Resultatet af konverteringen er altid i det nationale tegnsæt og er 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(ROWIDTONCHAR('AAATiBAAMAAAAIDAAE'), 17, 1, 4) AS "ROWIDTONCHAR"FRA DUAL<; /kode>

Resultat:

 CHARTOROWID ROWIDTONCHAR ____________________________ __________________________ Typ=69 Len=10:^@,^A,8,81 Typ=1 Len=36:^@,A,^@,A 

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

Et databaseeksempel

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

VÆLG ROWID, FIRST_NAME, LAST_NAMEFROM EMPLOYEESWHERE ROWIDTONCHAR(ROWID) SOM '%KzABa'; 

Resultat:

 ROWID FIRST_NAME EFTERNAVN _____________________ ____________ ____________ AAATiDAAMAAALKzABa Timothy Gates 

Nul-argument

Hvis argumentet er null , resultatet er null :

SET NULL 'null';SELECT ROWIDTONCHAR(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 ROWIDTONCHAR() uden nogen argumenter resulterer i en fejl:

VÆLG ROWIDTONCHAR()FRA DUAL; 

Resultat:

SQL-fejl:ORA-00909:ugyldigt antal argumenter00909. 00000 - "ugyldigt antal argumenter"

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

VÆLG ROWIDTONCHAR('a', 'b')FRA DUAL; 

Resultat:

SQL-fejl:ORA-00909:ugyldigt antal argumenter00909. 00000 - "ugyldigt antal argumenter"

  1. Sådan ændres tabel i SQL Server ved at bruge Alter Statement - SQL Server / T-SQL vejledning del 35

  2. Skift Excel-datonummer til Oracle-dato

  3. Hvordan pakkes PL SQL-kode i Oracle?

  4. Hvordan forhindrer man BOB i at fortolke et spørgsmålstegn som en pladsholder?