DUMP |
Décharger |
|---|---|
| Oracle Database SQL | Oracle 7 ou supérieure |
Syntaxe
| dump(expression1[,return_format[,start_position[,length]]]) |
Paramètres
| Nom | Description | |
|---|---|---|
| expression1 | Ce paramètre permet d'indiquer l'expression à analyser. | |
| return_format | Ce paramètre optionnel permet d'indiquer le format de valeur à retourné. Les valeurs acceptés sont les suivantes : | |
| Valeur | Description | |
| 8 | Cette valeur permet d'indiquer une notation octal. | |
| 10 | Cette valeur permet d'indiquer une notation décimal. | |
| 16 | Cette valeur permet d'indiquer une notation hexadécimal. | |
| 17 | Cette valeur permet d'indiquer des caractères simples. | |
| 1008 | Cette valeur permet d'indiquer une notation octal avec un nom d'ensemble de caractères. | |
| 1010 | Cette valeur permet d'indiquer une notation décimal avec un nom d'ensemble de caractères. | |
| 1016 | Cette valeur permet d'indiquer une notation hexadécimal avec un nom d'ensemble de caractères. | |
| 1017 | Cette valeur permet d'indiquer des caractères simples avec un nom d'ensemble de caractères. | |
| start_position | Ce paramètre optionnel permet d'indiquer la position de départ dans la représentation interne à retourner. | |
| length | Ce paramètre optionnel permet d'indiquer la longueur de la représentation interne à retourner. | |
Description
Cette fonction retourne le format de données et/ou de base numérique que contient une expression.
Remarques
- Analyse interne des données : La fonction DUMP permet de visualiser la représentation interne d'une valeur dans Oracle. Elle est particulièrement utile pour comprendre la structure mémoire d'une donnée. Cela peut aider à diagnostiquer des anomalies, comme des différences de codage de caractères ou des types inattendus. En retournant des informations détaillées, cette fonction donne accès au type de données, au jeu de caractères, à la longueur, et à la valeur sous forme binaire. Elle révèle donc des détails invisibles dans une requête SQL classique.
- Débogage de chaînes de caractères : Lorsque des données semblent identiques mais produisent des résultats incohérents (par exemple lors d'un tri ou d'une comparaison), DUMP permet de détecter les différences au niveau binaire. Cela est très utile dans les cas où des caractères spéciaux, des accents ou des encodages différents (UTF-8, AL32UTF8,...) sont soupçonnés. Elle peut montrer pourquoi deux chaînes apparemment similaires ne se comportent pas pareil. Cela en fait un outil puissant pour le diagnostic en environnement multilingue ou hétérogène.
- Support de multiples formats de sortie : Le paramètre return_format permet d'afficher la sortie dans différents formats numériques, comme l'octal, le décimal ou l'hexadécimal. Cette flexibilité permet d'adapter l'analyse en fonction du besoin, par exemple pour faciliter une lecture humaine ou pour une correspondance avec une spécification technique. Le format 17 permet même de voir les caractères interprétés. C'est utile pour visualiser directement les octets comme des caractères, facilitant le débogage de chaînes.
- Compatibilité étendue avec les versions Oracle : La fonction DUMP est disponible depuis Oracle 7 et continue à être prise en charge jusqu'à Oracle 23c. Cette longévité en fait une des fonctions les plus stables de la base de données. Cela permet aux DBA et aux développeurs de l'utiliser en toute confiance dans des systèmes anciens ou modernes. Elle reste un outil de base pour le diagnostic bas niveau.
- Contrôle de la portion à examiner : Les paramètres start_position et length permettent de cibler une portion précise de la représentation interne. Cela permet d'isoler un octet ou une série d'octets spécifique dans des cas complexes, par exemple lorsqu'une valeur contient des structures imbriquées ou des séquences binaires encodées. Cette granularité améliore la précision du diagnostic, notamment dans les objets longs ou contenant des motifs récurrents.
- Identification du type de données : L'une des premières informations retournées par DUMP est le code interne du type de données Oracle. Par exemple, une chaîne VARCHAR2 peut retourner un type code différent d'un CHAR. Cela aide à comprendre des erreurs liées aux conversions implicites de type. Cela peut aussi prévenir des comportements inattendus lors de jointures ou de filtrages où des colonnes de types apparemment identiques se comportent différemment.
- Support des ensembles de caractères : Avec les formats 1008, 1010, 1016 et 1017, DUMP retourne aussi le nom du jeu de caractères utilisé pour entreposer la valeur. Cela est particulièrement utile dans les bases multilingues, ou lorsque des données ont été importées de systèmes aux encodages variés. Ces informations sont précieuses pour assurer la cohérence et éviter les erreurs de conversion.
- Comparaison entre plateformes : La représentation binaire d'une même valeur peut varier d'une plateforme Oracle à une autre, selon l'architecture ou l'ensemble de caractères par défaut. DUMP est donc un outil crucial pour comparer des résultats entre environnements (par exemple, entre un serveur de développement Linux et un serveur de production Windows). Il permet de repérer des divergences de comportement liées à la configuration de bas niveau.
- Utilisation avec les types numériques : Pour les types numériques comme NUMBER ou FLOAT, DUMP montre leur représentation interne, ce qui peut révéler des informations comme la mantisse ou l'exposant. Cela aide à diagnostiquer des pertes de précision ou à vérifier le comportement des arrondis dans certaines fonctions arithmétiques. C'est un outil utile pour les applications scientifiques ou financières exigeant une haute fidélité des calculs.
- Inutilisable directement dans les clauses WHERE : Il est important de noter que DUMP est généralement utilisé dans la clause SELECT pour inspection, mais rarement dans une clause WHERE pour filtrage. En effet, la comparaison de la sortie de DUMP est complexe, car elle retourne une chaîne descriptive. Cela limite son usage à des cas d'analyse ponctuelle plutôt qu'à des opérations transactionnelles ou des traitements en masse.
- Fonction non déterministe : Bien que DUMP retourne toujours les mêmes résultats pour une même valeur, certaines informations comme les noms d'ensembles de caractères peuvent changer selon le contexte de session. Cela signifie que la sortie peut varier selon les paramètres de session NLS (National Language Support). Les utilisateurs doivent donc être prudents lorsqu'ils utilisent DUMP comme référence dans des scripts automatisés.
- Documentation relativement stable : La documentation Oracle de la fonction DUMP est assez stable depuis les premières versions, et la fonction n'a subi que peu de modifications. Cela la rend facile à apprendre, et son comportement est prévisible. Elle est largement utilisée par les experts Oracle pour le débogage avancé, notamment dans les forums techniques et les scripts de support Oracle.
Voir également
Article - Les géants de l'informatique - Oracle
Dernière mise à jour : Lundi, le 11 mai 2015