In Oracle Database, de ROWIDTOCHAR()
functie converteert een ROWID
waarde naar VARCHAR2
gegevenstype.
Syntaxis
De syntaxis gaat als volgt:
ROWIDTOCHAR(rowid)
Voorbeeld
Hier is een voorbeeld:
SELECT ROWIDTOCHAR('AAATiBAAMAAAAIDAAE')
FROM DUAL;
Resultaat:
AAATiBAAMAAAAIDAAE
Het resultaat van de conversie is altijd 18 tekens lang.
En hier is een dump van het resultaat vergeleken met de CHARTOROWID()
functie (die een ROWID
retourneert waarde uit karaktergegevens):
SELECT
DUMP(CHARTOROWID('AAATiBAAMAAAAIDAAE'), 17, 1, 4) AS "CHARTOROWID",
DUMP(ROWIDTOCHAR('AAATiBAAMAAAAIDAAE'), 17, 1, 4) AS "ROWIDTOCHAR"
FROM DUAL;
Resultaat:
CHARTOROWID ROWIDTOCHAR ____________________________ ________________________ Typ=69 Len=10: ^@,^A,8,81 Typ=1 Len=18: A,A,A,T
Een type-ID van 69
betekent dat het van ROWID
. is gegevenstype en een type-ID van 1
betekent dat het ofwel VARCHAR2
is of NVARCHARCHAR2
.
Een databasevoorbeeld
Hier is een voorbeeld dat een rij retourneert in een databasetabel, gebaseerd op een gegeven ROWID
:
SELECT
ROWID,
FIRST_NAME,
LAST_NAME
FROM EMPLOYEES
WHERE ROWIDTOCHAR(ROWID) LIKE '%KzABa';
Resultaat:
ROWID FIRST_NAME LAST_NAME _____________________ _____________ ____________ AAATiDAAMAAALKzABa Timothy Gates
Nullargument
Als het argument null
is , het resultaat is null
:
SET NULL 'null';
SELECT ROWIDTOCHAR(null)
FROM DUAL;
Resultaat:
null
Standaard retourneren SQLcl en SQL*Plus een spatie wanneer een null-waarde optreedt als resultaat van een SQL SELECT
verklaring.
U kunt echter SET NULL
gebruiken om een andere tekenreeks op te geven die moet worden geretourneerd. Hier heb ik gespecificeerd dat de string null
moet worden geretourneerd.
Ongeldig aantal argumenten
Bellen ROWIDTOCHAR()
zonder argumenten resulteert in een fout:
SELECT ROWIDTOCHAR()
FROM DUAL;
Resultaat:
SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments"
En het doorgeven van te veel argumenten resulteert ook in een fout:
SELECT ROWIDTOCHAR('a', 'b')
FROM DUAL;
Resultaat:
SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments"