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

Fonction COMPOSE() dans Oracle

Dans Oracle Database, le COMPOSE() La fonction renvoie le résultat de l'application de la composition canonique Unicode, comme décrit dans la définition standard Unicode D117, à son argument de chaîne.

C'est le contraire de DECOMPOSE() fonction.

Syntaxe

La syntaxe ressemble à ceci :

COMPOSE(char)

char est l'un des CHAR , VARCHAR2 , NCHAR , ou NVARCHAR2 types de données.

Exemple

Voici un exemple pour illustrer :

SELECT 
    COMPOSE('a' || UNISTR('\0303'))
FROM DUAL;

Résultat :

ã

Caractères non Unicode

Si le jeu de caractères de l'argument n'est pas l'un des jeux de caractères Unicode, l'argument est renvoyé tel quel.

Exemple :

SELECT COMPOSE( 'a' )
FROM DUAL;

Résultat :

a

Argument nul

Si l'argument est null , le résultat est null :

SET NULL 'null';
SELECT COMPOSE(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

Appeler COMPOSE() sans aucun argument génère une erreur :

SELECT COMPOSE()
FROM DUAL;

Résultat :

SQL Error: ORA-00909: invalid number of arguments
00909. 00000 -  "invalid number of arguments"

Et passer trop d'arguments entraîne également une erreur :

SELECT COMPOSE('a', 'b')
FROM DUAL;

Résultat :

SQL Error: ORA-00909: invalid number of arguments
00909. 00000 -  "invalid number of arguments"