In der Oracle-Datenbank das ROWIDTONCHAR()
Funktion wandelt eine ROWID
um Wert zu NVARCHAR2
Datentyp
Es ähnelt dem ROWIDTOCHAR()
Funktion, außer dass ROWIDTOCHAR()
konvertiert eine ROWID
Wert zu VARCHAR2
Datentyp.
Syntax
Die Syntax lautet wie folgt:
ROWIDTONCHAR(rowid)
Beispiel
Hier ist ein Beispiel:
SELECT ROWIDTONCHAR('AAATiBAAMAAAAIDAAE')
FROM DUAL;
Ergebnis:
AAATiBAAMAAAAIDAAE
Das Ergebnis der Konvertierung ist immer im nationalen Zeichensatz und 18 Zeichen lang.
Und hier ist ein Dump des Ergebnisses im Vergleich zu CHARTOROWID()
Funktion (die eine ROWID
zurückgibt Wert aus Zeichendaten):
SELECT
DUMP(CHARTOROWID('AAATiBAAMAAAAIDAAE'), 17, 1, 4) AS "CHARTOROWID",
DUMP(ROWIDTONCHAR('AAATiBAAMAAAAIDAAE'), 17, 1, 4) AS "ROWIDTONCHAR"
FROM DUAL;
Ergebnis:
CHARTOROWID ROWIDTONCHAR ____________________________ __________________________ Typ=69 Len=10: ^@,^A,8,81 Typ=1 Len=36: ^@,A,^@,A
Eine Typ-ID von 69
bedeutet, dass es von ROWID
ist Datentyp und eine Typ-ID von 1
bedeutet, dass es entweder VARCHAR2
ist oder NVARCHARCHAR2
.
Ein Datenbankbeispiel
Hier ist ein Beispiel, das eine Zeile in einer Datenbanktabelle zurückgibt, basierend auf einer gegebenen ROWID
:
SELECT
ROWID,
FIRST_NAME,
LAST_NAME
FROM EMPLOYEES
WHERE ROWIDTONCHAR(ROWID) LIKE '%KzABa';
Ergebnis:
ROWID FIRST_NAME LAST_NAME _____________________ _____________ ____________ AAATiDAAMAAALKzABa Timothy Gates
Null-Argument
Wenn das Argument null
ist , ist das Ergebnis null
:
SET NULL 'null';
SELECT ROWIDTONCHAR(null)
FROM DUAL;
Ergebnis:
null
Standardmäßig geben SQLcl und SQL*Plus ein Leerzeichen zurück, wenn als Ergebnis eines SQL-SELECT
ein Nullwert auftritt Aussage.
Sie können jedoch SET NULL
verwenden um eine andere Zeichenfolge anzugeben, die zurückgegeben werden soll. Hier habe ich angegeben, dass der String null
zurückgegeben werden soll.
Ungültige Argumentanzahl
Aufruf von ROWIDTONCHAR()
ohne Argumente führt zu einem Fehler:
SELECT ROWIDTONCHAR()
FROM DUAL;
Ergebnis:
SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments"
Und das Übergeben zu vieler Argumente führt ebenfalls zu einem Fehler:
SELECT ROWIDTONCHAR('a', 'b')
FROM DUAL;
Ergebnis:
SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments"