I Oracle Database, ASCIISTR()
funktion returnerar en ASCII-version av den givna strängen i databasens teckenuppsättning.
Syntax
Syntaxen ser ut så här:
ASCIISTR(char)
Där char
är en sträng eller ett uttryck som löser sig till en sträng, i valfri teckenuppsättning.
Icke-ASCII-tecken konverteras till formen \xxxx
, där xxxx
representerar en UTF-16-kodenhet.
Exempel
Här är ett exempel:
SELECT ASCIISTR('Fish')
FROM DUAL;
Resultat:
Fish
I det här fallet är resultatet detsamma som inmatningen, eftersom inmatningen använde ASCII-tecken.
Här är en annan som använder icke-ASCII-tecken:
SELECT ASCIISTR('ปลา')
FROM DUAL;
Resultat:
\0E1B\0E25\0E32
Här får vi vart och ett av de tre tecknen returnerade i sina ASCII-motsvarigheter.
I det här fallet, ingången (ปลา
) är det thailändska ordet för "fisk". Detta kan uttalas som "Plā".
Här är vad som händer när vi passerar Plā
till ASCIISTR()
funktion:
SELECT ASCIISTR('Plā')
FROM DUAL;
Resultat:
Pl\0101
I det här fallet är de två första tecknen som vi passerade ASCII-tecken, men det tredje tecknet är icke-ASCII. Därför returnerar funktionen de två första tecknen oförändrade och det tredje konverterat till ASCII.
Här är en annan som klarar น้ำ
, som är det thailändska ordet för "vatten":
SELECT ASCIISTR('น้ำ')
FROM DUAL;
Resultat:
\0E19\0E49\0E33
Nullvärden
Om argumentet är null
, resultatet är null
:
SET NULL 'null';
SELECT ASCIISTR(null)
FROM DUAL;
Resultat:
null
Som standard returnerar SQLcl och SQL*Plus ett tomt utrymme när ett nollvärde inträffar som ett resultat av en SQL SELECT
uttalande.
Du kan dock använda SET NULL
för att ange en annan sträng som ska returneras. Här specificerade jag att strängen null
bör returneras.
Ogiltigt antal argument
Anropar ASCIISTR()
utan några argument resulterar i ett fel:
SELECT ASCIISTR()
FROM DUAL;
Resultat:
SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments"