CAST |
Castré |
|---|---|
| Oracle Database SQL | Oracle 8i (8.1.x) ou supérieure |
Syntaxe
| Cast(expr AS type) |
Paramètres
| Nom | Description | |
|---|---|---|
| expr | Ce paramètre permet d'indiquer l'expression à traiter | |
| type | Ce paramètre permet d'indiquer le type de données : | |
| Valeur | Description | |
| NUMBER | Cette valeur permet d'indiquer un type de données d'entier. | |
| CHAR(longueur) | Ces valeurs permettent d'indiquer un type de données de chaîne de caractères de longueur spécifié. | |
| ... | ... | |
Description
Cette fonction permet de transformer le type d'une expression sous un autre type de données.
Remarques
- Permet de convertir explicitement une expression d'un type vers un autre : La fonction CAST est utilisée pour transformer un type de données en un autre de manière explicite. Elle est utile lorsqu'Oracle ne peut pas convertir implicitement deux types dans une opération, ou pour s'assurer d'un formatage précis.
- Supporte de nombreux types de données SQL : On peut convertir une expression vers des types tels que NUMBER, VARCHAR2, CHAR, DATE, TIMESTAMP, INTERVAL, et même des types de collections ou objets personnalisés. Cela offre une flexibilité importante pour les requêtes complexes.
- Indispensable pour les opérations de comparaison ou de jointure sur types différents : Lorsque deux colonnes de types incompatibles doivent être comparées ou jointes, CAST permet de forcer l'un des deux types, assurant ainsi la compatibilité et évitant les erreurs de conversion implicite.
- Peut être combinée à d'autres fonctions SQL pour un traitement plus précis : CAST est souvent utilisée avec TO_CHAR, TO_DATE, TRUNC,..., pour affiner les formats ou types de retour. Par exemple, CAST(SYSDATE AS TIMESTAMP) permet de travailler avec des fractions de secondes non disponibles en type DATE.
- Utile pour la sérialisation ou l'exportation de données : Dans des requêtes de type SELECT, CAST permet de contrôler les formats de sortie (exemple : limiter une chaîne à 10 caractères ou forcer un entier sur une colonne calculée), ce qui est utile dans les rapports, exports CSV ou affichage.
- Nécessaire pour travailler avec des types XML ou objets complexes : Lorsqu'on interagit avec des objets SQL personnalisés ou des types XML, CAST devient indispensable pour convertir une valeur vers un XMLTYPE, un REF, ou une collection comme TABLE OF NUMBER, facilitant le traitement de données structurées.
- Diffère des conversions implicites, pouvant être imprécises ou ambiguës : Oracle essaie souvent de convertir implicitement les types (exemple : additionner une chaîne "123" avec un NUMBER). Cependant, ces conversions peuvent être risquées ou donner des résultats inattendus. CAST offre une conversion contrôlée et sécurisée.
- Peut être utilisée dans les vues, les sous-requêtes ou les clauses ORDER BY : Comme CAST retourne une expression typée, elle peut être utilisée pour trier (ORDER BY CAST(...)), filtrer (WHERE CAST(...) = ...), ou construire des vues ou des expressions scalaires intermédiaires sans perdre le contrôle du format.
Exemple
Voici un exemple montrant comment transformer une chaîne de caractères ayant une valeur en pourcentage en un nombre entier :
on obtiendra le résultat suivant :
| CAST(REPLACE('100%','%','')AS NUMBER) |
| 100 |
Voir également
Article - Les géants de l'informatique - Oracle
Dernière mise à jour : Lundi, le 11 mai 2015