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)
Où 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"