Overblog Suivre ce blog
Editer l'article Administration Créer mon blog
11 avril 2012 3 11 /04 /avril /2012 19:32

 

SQL - CONCAT.

Comment utiliser la fonction Oracle CONCAT.
Comment concaténer des chaînes de caractères dans Oracle.
Comment faire une concaténation de champs / colonnes dans une requête SQL.

LA CONCATÉNATION ORACLE AVEC LA FONCTION SQL CONCAT.

La fonction Oracle SQL CONCAT permet de concaténer ou de fusionner plusieurs chaînes de caractères, ainsi le résultat de la concaténation de deux chaînes de caractères sera une autre chaîne de caractères.
Si les deux chaînes de caractères sont de type de données CHAR, la fonction CONCAT retrournera une chaîne de type CHAR et donc sera limité à 2000 caractères.
Si les chaîne de caractères sont type de données VARCHAR2 alors la fonction CONCAT retournera une chaîne de type VARCHAR2 et donc sera limité à 4000 caractères.

La concaténation d'une chaîne '' (Vide) ou NULL avec une chaîne NON NULL retourne une chaîne et non pas une valeur NULL.

 

Il existe aussi dans Oracle un opérateur de concaténation, le || ( Double Pipe ) ( Barres verticales ).
Lorsque l'on doit concaténer des chaînes de caractères dans des scripts, ou Batch, Oracle conseille l'utilisation de la fonction CONCAT pour une raison de portabilité, car le || ( Double Pipe ) est mal ou pas interprété sur d'autres Systèmes.

SYNTAXE SQL CONCAT.

 
 CONCAT(char1, char2) 

Les expressions char1 et char2 de la fonction CONCAT peuvent être de type CHAR, VARCHAR2, NCHAR, NVARCHAR2, CLOB et NCLOB.

 

EXEMPLE CONCAT DANS UN SELECT.

Concaténation simple de deux chaînes de caractères.

 
 SQL> SELECT CONCAT ('Bienvenue ', 'sur l''article CONCAT') AS "CONCAT = String" FROM dual; CONCAT = String ------------------------------ Bienvenue sur l'article CONCAT SQL> 

 

EXEMPLE CONCAT ET DOUBLE PIPE DANS UN SELECT.

Une double utilisation de la fonction CONCAT concaténée par un double pipe ( || ) à partir de champs de table.

 
 SQL> SELECT CONCAT ('Le Salarié ', ename) || CONCAT (' a pour salaire ', sal) AS "CONCAT + DOUBLE PIPE" FROM bonus; CONCAT + DOUBLE PIPE ----------------------------------------------- Le Salarié SMITH a pour salaire 800,5 Le Salarié ALLEN a pour salaire 1600 Le Salarié WARD a pour salaire 1250 Le Salarié JONES a pour salaire 2975 Le Salarié MARTIN a pour salaire 1250 SQL> 

 

EXEMPLE CONVERSION NUMÉRIQUE D'UN CONCAT.

Dans cet exemple, concaténation de deux valeurs chaînes puis conversion numérique avec TO_NUMBER du résultat de la fonction CONCAT.

 
 SQL> SELECT CONCAT ('2', '22') AS "CONCAT = String" FROM dual; CONCAT = String --------------- 222 SQL> SQL> SELECT TO_NUMBER(CONCAT ('2', '22')) AS "TO_NUMBER - CONCAT" FROM dual; TO_NUMBER - CONCAT ------------------ 222 SQL> 

 

EXEMPLE D'UTILISATION DE LA FONCTION SQL CONCAT.

Pour le fun, et pour bien comprendre la concaténation dans Oracle, cet exemple qui mixe conversion TO_NUMBER + CONCAT + DOUBLE PIPE.

 
 SQL> SELECT 'J''ai transformé ' || TO_NUMBER (CONCAT ('2', '22')) || ' en valeur numérique.' AS "TO_NUMBER - CONCAT" FROM dual; TO_NUMBER - CONCAT ---------------------------------------- J'ai transformé 222 en valeur numérique. SQL> 

 

UPDATE D'UNE COLONNE AVEC DES VALEURS CONCATÉNÉES VIA LA FONCTION SQL CONCAT.

Dans cet exemple de concaténation, on met à jour un champs de table avec son contenu concaténé à une nouvelle chaîne de caractères.

 
 SQL> UPDATE bonus SET ename = CONCAT ('Salarié : ', ename); 5 ligne(s) mise(s) à jour. SQL> SELECT * FROM bonus; ENAME JOB SAL COMM -------------------- ---------- ---------- ---------- Salarié : SMITH CLERK 800,5 Salarié : ALLEN SALESMAN 1600 300 Salarié : WARD SALESMAN 1250 500,56 Salarié : JONES MANAGER 2975 Salarié : MARTIN SALESMAN 1250 1400 SQL> 

Même résultat si nous avions concaténé avec le Double pipe : UPDATE bonus SET ename = 'Salarié : ' || ename;

 

 

Haut de Page www.dba-ora.fr

 

Liens en rapport avec l'article et qui sont susceptibles de vous intéresser
• Fonction SQL Oracle LTRIM
• Fonction SQL Oracle RTRIM
• Fonction SQL Oracle REPLACE
• Fonction SQL Oracle TRIM

Partager cet article

Repost 0
Published by Daniel Roesch - dans FUNCTIONS - SQL
commenter cet article

commentaires

dot.nenette 12/04/2012 19:47

Superbe description sur la concaténation de chaînes dans oracle, un post aussi grand pour une fonction si simple telle que CONCAT. !!! Bravo