In der Oracle-Datenbank das ASCII()
Die Funktion gibt die Dezimaldarstellung des ersten Zeichens ihres Arguments im Datenbankzeichensatz zurück.
Syntax
Die Syntax sieht so aus:
ASCII(char)
Wobei char
ist vom Datentyp CHAR
, VARCHAR2
, NCHAR
, oder NVARCHAR2
.
ASCII()
gibt nur den numerischen ASCII-Wert des ersten Zeichens dieser Zeichenfolge zurück.
Beispiel
Hier ist ein einfaches Beispiel zur Veranschaulichung:
SELECT ASCII('Oracle')
FROM DUAL;
Ergebnis:
79
Dies sagt uns, dass der Großbuchstabe O
hat den numerischen ASCII-Wert 79
.
Wie erwähnt, ASCII()
gibt nur den ASCII-Wert des ersten zurück Charakter. Daher führt Folgendes zum selben Ergebnis:
SELECT ASCII('O')
FROM DUAL;
Ergebnis:
79
Um dies weiter zu demonstrieren, lassen Sie uns den numerischen ASCII-Wert aus jedem Buchstaben in der obigen Zeichenfolge abrufen:
SELECT
ASCII('O') AS "O",
ASCII('r') AS "r",
ASCII('a') AS "a",
ASCII('c') AS "c",
ASCII('l') AS "l",
ASCII('e') AS "e"
FROM DUAL;
Ergebnis:
O r a c l e _____ ______ _____ _____ ______ ______ 79 114 97 99 108 101
Groß-/Kleinschreibung
Großbuchstaben haben einen anderen ASCII-Wert als ihre Kleinbuchstaben.
Beispiel:
SELECT
ASCII('R') AS "R",
ASCII('r') AS "r"
FROM DUAL;
Ergebnis:
R r _____ ______ 82 114
Ein Datenbankbeispiel
Hier ist ein Beispiel für die Verwendung von ASCII()
in einer Datenbankabfrage:
SELECT
first_name,
ASCII(first_name) AS "ASCII value of leftmost character"
FROM employees
FETCH FIRST 10 ROWS ONLY;
Ergebnis:
FIRST_NAME ASCII value of leftmost character _____________ ____________________________________ Ellen 69 Sundar 83 Mozhe 77 David 68 Hermann 72 Shelli 83 Amit 65 Elizabeth 69 Sarah 83 David 68
Zeichen ganz rechts
Hier verwende ich den SUBSTR()
Funktion, um das Zeichen ganz rechts von jedem Tiernamen zurückzugeben, und verwenden Sie es dann erneut mit ASCII()
Funktion, um den ASCII-Wert für dieses Zeichen zurückzugeben.
SELECT
first_name,
SUBSTR(first_name, -1) AS "Rightmost character",
ASCII(SUBSTR(first_name, -1)) AS "ASCII"
FROM employees
FETCH FIRST 10 ROWS ONLY;
Ergebnis:
FIRST_NAME Rightmost character ASCII _____________ ______________________ ________ Ellen n 110 Sundar r 114 Mozhe e 101 David d 100 Hermann n 110 Shelli i 105 Amit t 116 Elizabeth h 104 Sarah h 104 David d 100
Leere Zeichenfolgen
Die Bereitstellung einer leeren Zeichenfolge führt zu null
zurückgegeben.
SET NULL 'null';
SELECT ASCII('')
FROM DUAL;
Ergebnis:
ASCII('') ____________ null
Standardmäßig geben SQLcl und SQL*Plus ein Leerzeichen zurück, wenn null
tritt als Ergebnis eines SQL SELECT
auf Erklärung.
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.
Nullwerte
Übergabe von null
ergibt null
:
SELECT ASCII(null)
FROM DUAL;
Ergebnis:
ASCII(NULL) ______________ null
Fehlendes Argument
Der Aufruf der Funktion mit ohne Übergabe eines Arguments führt zu einem Fehler:
SELECT ASCII()
FROM DUAL;
Ergebnis:
Error starting at line : 1 in command - SELECT ASCII() FROM DUAL Error at Command Line : 1 Column : 8 Error report - SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments" *Cause: *Action:
Das Gleiche gilt, wenn zu viele Argumente übergeben werden:
SELECT ASCII('a', 'b')
FROM DUAL;
Ergebnis:
Error starting at line : 1 in command - SELECT ASCII('a', 'b') FROM DUAL Error at Command Line : 1 Column : 8 Error report - SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments" *Cause: *Action: