In Oracle Database, ASCIISTR()
La funzione restituisce una versione ASCII della stringa data nel set di caratteri del database.
Sintassi
La sintassi è questa:
ASCIISTR(char)
Dove char
è una stringa o un'espressione che si risolve in una stringa, in qualsiasi set di caratteri.
I caratteri non ASCII vengono convertiti nel formato \xxxx
, dove xxxx
rappresenta un'unità di codice UTF-16.
Esempio
Ecco un esempio:
SELECT ASCIISTR('Fish')
FROM DUAL;
Risultato:
Fish
In questo caso, il risultato è lo stesso dell'input, perché l'input utilizza caratteri ASCII.
Eccone un altro che utilizza caratteri non ASCII:
SELECT ASCIISTR('ปลา')
FROM DUAL;
Risultato:
\0E1B\0E25\0E32
Qui, otteniamo ciascuno dei tre caratteri restituiti nei loro equivalenti ASCII.
In questo caso, l'input (ปลา
) è la parola tailandese per “pesce”. Questo può essere pronunciato come “Plā”.
Ecco cosa succede quando superiamo Plā
al ASCIISTR()
funzione:
SELECT ASCIISTR('Plā')
FROM DUAL;
Risultato:
Pl\0101
In questo caso, i primi due caratteri che abbiamo passato sono caratteri ASCII, ma il terzo carattere non è ASCII. Pertanto, la funzione restituisce i primi due caratteri invariati e il terzo convertito in ASCII.
Eccone un altro che supera น้ำ
, che è la parola tailandese per "acqua":
SELECT ASCIISTR('น้ำ')
FROM DUAL;
Risultato:
\0E19\0E49\0E33
Valori nulli
Se l'argomento è null
, il risultato è null
:
SET NULL 'null';
SELECT ASCIISTR(null)
FROM DUAL;
Risultato:
null
Per impostazione predefinita, SQLcl e SQL*Plus restituiscono uno spazio vuoto ogni volta che si verifica un valore nullo come risultato di un SQL SELECT
dichiarazione.
Tuttavia, puoi usare SET NULL
per specificare una stringa diversa da restituire. Qui ho specificato che la stringa null
deve essere restituito.
Conteggio argomenti non valido
Chiamando ASCIISTR()
senza alcun argomento genera un errore:
SELECT ASCIISTR()
FROM DUAL;
Risultato:
SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments"