sql >> Database teknologi >  >> RDS >> Oracle

ASCIISTR() Funktion i Oracle

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"

  1. Slet en databasemail-profil i SQL Server (T-SQL)

  2. Hold orden fra 'IN'-klausulen

  3. PostgreSQL UNIX domæne sockets vs TCP sockets

  4. Sådan skriver du en .Net-applikation, der fungerer med både SqlServer og Oracle (nu hvor System.Data.OracleClient er forældet)