I Oracle Database er ASCIISTR()
funktion returnerer en ASCII-version af den givne streng i databasens tegnsæt.
Syntaks
Syntaksen ser sådan ud:
ASCIISTR(char)
Hvor char
er en streng eller et udtryk, der løses til en streng, i ethvert tegnsæt.
Ikke-ASCII-tegn konverteres til formen \xxxx
, hvor xxxx
repræsenterer en UTF-16 kodeenhed.
Eksempel
Her er et eksempel:
SELECT ASCIISTR('Fish')
FROM DUAL;
Resultat:
Fish
I dette tilfælde er resultatet det samme som inputtet, fordi inputtet brugte ASCII-tegn.
Her er en anden, der bruger ikke-ASCII-tegn:
SELECT ASCIISTR('ปลา')
FROM DUAL;
Resultat:
\0E1B\0E25\0E32
Her får vi hver af de tre karakterer returneret i deres ASCII-ækvivalenter.
I dette tilfælde vil inputtet (ปลา
) er det thailandske ord for "fisk". Dette kan udtales som "Plā".
Her er, hvad der sker, når vi passerer Plā
til ASCIISTR()
funktion:
SELECT ASCIISTR('Plā')
FROM DUAL;
Resultat:
Pl\0101
I dette tilfælde er de første to karakterer, som vi bestod, ASCII-tegn, men det tredje tegn er ikke-ASCII. Derfor returnerer funktionen de første to tegn uændret, og den tredje konverteret til ASCII.
Her er endnu en, der passerer น้ำ
, som er det thailandske ord for "vand":
SELECT ASCIISTR('น้ำ')
FROM DUAL;
Resultat:
\0E19\0E49\0E33
Nul-værdier
Hvis argumentet er null
, resultatet er null
:
SET NULL 'null';
SELECT ASCIISTR(null)
FROM DUAL;
Resultat:
null
Som standard returnerer SQLcl og SQL*Plus et tomt mellemrum, når der opstår en null-værdi som et resultat af en SQL SELECT
erklæring.
Du kan dog bruge SET NULL
for at angive en anden streng, der skal returneres. Her specificerede jeg, at strengen null
skal returneres.
Ugyldigt argumentantal
Opkald ASCIISTR()
uden nogen argumenter resulterer i en fejl:
SELECT ASCIISTR()
FROM DUAL;
Resultat:
SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments"