Dans la base de données Oracle, le ASCIISTR()
La fonction renvoie une version ASCII de la chaîne donnée dans le jeu de caractères de la base de données.
Syntaxe
La syntaxe ressemble à ceci :
ASCIISTR(char)
Où char
est une chaîne ou une expression qui se résout en une chaîne, dans n'importe quel jeu de caractères.
Les caractères non ASCII sont convertis sous la forme \xxxx
, où xxxx
représente une unité de code UTF-16.
Exemple
Voici un exemple :
SELECT ASCIISTR('Fish')
FROM DUAL;
Résultat :
Fish
Dans ce cas, le résultat est le même que l'entrée, car l'entrée a utilisé des caractères ASCII.
En voici un autre qui utilise des caractères non-ASCII :
SELECT ASCIISTR('ปลา')
FROM DUAL;
Résultat :
\0E1B\0E25\0E32
Ici, nous obtenons chacun des trois caractères retournés dans leurs équivalents ASCII.
Dans ce cas, l'entrée (ปลา
) est le mot thaï pour "poisson". Cela peut être prononcé comme "Plā".
Voici ce qui se passe lorsque nous passons Plā
au ASCIISTR()
fonction :
SELECT ASCIISTR('Plā')
FROM DUAL;
Résultat :
Pl\0101
Dans ce cas, les deux premiers caractères que nous avons transmis sont des caractères ASCII, mais le troisième caractère n'est pas ASCII. Par conséquent, la fonction renvoie les deux premiers caractères inchangés et le troisième converti en ASCII.
En voici un autre qui passe น้ำ
, qui est le mot thaï pour "eau":
SELECT ASCIISTR('น้ำ')
FROM DUAL;
Résultat :
\0E19\0E49\0E33
Valeurs nulles
Si l'argument est null
, le résultat est null
:
SET NULL 'null';
SELECT ASCIISTR(null)
FROM DUAL;
Résultat :
null
Par défaut, SQLcl et SQL*Plus renvoient un espace vide chaque fois qu'une valeur nulle se produit à la suite d'un SELECT
SQL déclaration.
Cependant, vous pouvez utiliser SET NULL
pour spécifier une autre chaîne à renvoyer. Ici, j'ai précisé que la chaîne null
doit être retourné.
Nombre d'arguments non valides
Appel ASCIISTR()
sans aucun argument génère une erreur :
SELECT ASCIISTR()
FROM DUAL;
Résultat :
SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments"