I Oracle Database, ROWIDTONCHAR()
funktion konverterar en ROWID
värde till NVARCHAR2
datatyp
Det liknar ROWIDTOCHAR()
funktion, förutom att ROWIDTOCHAR()
konverterar en ROWID
värde till VARCHAR2
datatyp.
Syntax
Syntaxen ser ut så här:
ROWIDTONCHAR(rowid)
Exempel
Här är ett exempel:
SELECT ROWIDTONCHAR('AAATiBAAMAAAAIDAAE')
FROM DUAL;
Resultat:
AAATiBAAMAAAAIDAAE
Resultatet av konverteringen finns alltid i den nationella teckenuppsättningen och är 18 tecken långt.
Och här är en dump av resultatet jämfört med CHARTOROWID()
funktion (som returnerar en ROWID
värde från teckendata):
SELECT
DUMP(CHARTOROWID('AAATiBAAMAAAAIDAAE'), 17, 1, 4) AS "CHARTOROWID",
DUMP(ROWIDTONCHAR('AAATiBAAMAAAAIDAAE'), 17, 1, 4) AS "ROWIDTONCHAR"
FROM DUAL;
Resultat:
CHARTOROWID ROWIDTONCHAR ____________________________ __________________________ Typ=69 Len=10: ^@,^A,8,81 Typ=1 Len=36: ^@,A,^@,A
Ett typ-ID på 69
betyder att den är av ROWID
datatyp och ett typ-ID på 1
betyder att det antingen är VARCHAR2
eller NVARCHARCHAR2
.
Ett databasexempel
Här är ett exempel som returnerar en rad i en databastabell, baserat på en given ROWID
:
SELECT
ROWID,
FIRST_NAME,
LAST_NAME
FROM EMPLOYEES
WHERE ROWIDTONCHAR(ROWID) LIKE '%KzABa';
Resultat:
ROWID FIRST_NAME LAST_NAME _____________________ _____________ ____________ AAATiDAAMAAALKzABa Timothy Gates
Nollargument
Om argumentet är null
, resultatet är null
:
SET NULL 'null';
SELECT ROWIDTONCHAR(null)
FROM DUAL;
Resultat:
null
Som standard returnerar SQLcl och SQL*Plus ett tomt utrymme när ett nollvärde inträffar som ett resultat av en SQL SELECT
uttalande.
Du kan dock använda SET NULL
för att ange en annan sträng som ska returneras. Här specificerade jag att strängen null
bör returneras.
Ogiltigt antal argument
Anropar ROWIDTONCHAR()
utan några argument resulterar i ett fel:
SELECT ROWIDTONCHAR()
FROM DUAL;
Resultat:
SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments"
Och att skicka för många argument resulterar också i ett fel:
SELECT ROWIDTONCHAR('a', 'b')
FROM DUAL;
Resultat:
SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments"