In Oracle Database, de ASCIISTR()
functie retourneert een ASCII-versie van de gegeven tekenreeks in de databasetekenset.
Syntaxis
De syntaxis gaat als volgt:
ASCIISTR(char)
Waar char
is een tekenreeks of een uitdrukking die wordt omgezet in een tekenreeks, in elke tekenset.
Niet-ASCII-tekens worden geconverteerd naar de vorm \xxxx
, waar xxxx
staat voor een UTF-16 code-eenheid.
Voorbeeld
Hier is een voorbeeld:
SELECT ASCIISTR('Fish')
FROM DUAL;
Resultaat:
Fish
In dit geval is het resultaat hetzelfde als de invoer, omdat de invoer ASCII-tekens gebruikte.
Hier is er nog een die niet-ASCII-tekens gebruikt:
SELECT ASCIISTR('ปลา')
FROM DUAL;
Resultaat:
\0E1B\0E25\0E32
Hier krijgen we elk van de drie karakters terug in hun ASCII-equivalenten.
In dit geval is de invoer (ปลา
) is het Thaise woord voor “vis”. Dit kan worden uitgesproken als "Plā".
Dit is wat er gebeurt als we Plā
pass passeren naar de ASCIISTR()
functie:
SELECT ASCIISTR('Plā')
FROM DUAL;
Resultaat:
Pl\0101
In dit geval zijn de eerste twee tekens die we hebben doorgegeven ASCII-tekens, maar het derde teken is niet-ASCII. Daarom retourneert de functie de eerste twee tekens ongewijzigd en de derde omgezet naar ASCII.
Hier is er nog een die slaagt voor น้ำ
, wat het Thaise woord is voor "water":
SELECT ASCIISTR('น้ำ')
FROM DUAL;
Resultaat:
\0E19\0E49\0E33
Null-waarden
Als het argument null
is , het resultaat is null
:
SET NULL 'null';
SELECT ASCIISTR(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 ASCIISTR()
zonder argumenten resulteert in een fout:
SELECT ASCIISTR()
FROM DUAL;
Resultaat:
SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments"