Oracle
 sql >> Base de données >  >> RDS >> Oracle

Fonction ASCIISTR() dans Oracle

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)

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"