Oracle
 sql >> Datenbank >  >> RDS >> Oracle

ASCIISTR()-Funktion in Oracle

In der Oracle-Datenbank der ASCIISTR() Die Funktion gibt eine ASCII-Version der angegebenen Zeichenfolge im Datenbankzeichensatz zurück.

Syntax

Die Syntax lautet wie folgt:

ASCIISTR(char)

Wobei char ist eine Zeichenfolge oder ein Ausdruck, der in eine Zeichenfolge aufgelöst wird, in einem beliebigen Zeichensatz.

Nicht-ASCII-Zeichen werden in die Form \xxxx konvertiert , wobei xxxx stellt eine UTF-16-Codeeinheit dar.

Beispiel

Hier ist ein Beispiel:

SELECT ASCIISTR('Fish')
FROM DUAL;

Ergebnis:

Fish

In diesem Fall entspricht das Ergebnis der Eingabe, da die Eingabe ASCII-Zeichen verwendet.

Hier ist noch eine, die Nicht-ASCII-Zeichen verwendet:

SELECT ASCIISTR('ปลา')
FROM DUAL;

Ergebnis:

\0E1B\0E25\0E32

Hier erhalten wir jedes der drei Zeichen in ihren ASCII-Äquivalenten zurückgegeben.

In diesem Fall ist die Eingabe (ปลา ) ist das thailändische Wort für „Fisch“. Dies kann als „Plā“ ausgesprochen werden.

Folgendes passiert, wenn wir Plā passieren zum ASCIISTR() Funktion:

SELECT ASCIISTR('Plā')
FROM DUAL;

Ergebnis:

Pl\0101

In diesem Fall sind die ersten beiden Zeichen, die wir übergeben haben, ASCII-Zeichen, aber das dritte Zeichen ist Nicht-ASCII. Daher gibt die Funktion die ersten beiden Zeichen unverändert und das dritte in ASCII konvertiert zurück.

Hier ist ein weiterer, der น้ำ übergibt , was das thailändische Wort für „Wasser“ ist:

SELECT ASCIISTR('น้ำ')
FROM DUAL;

Ergebnis:

\0E19\0E49\0E33

Nullwerte

Wenn das Argument null ist , ist das Ergebnis null :

SET NULL 'null';
SELECT ASCIISTR(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 ASCIISTR() ohne Argumente führt zu einem Fehler:

SELECT ASCIISTR()
FROM DUAL;

Ergebnis:

SQL Error: ORA-00909: invalid number of arguments
00909. 00000 -  "invalid number of arguments"