SAP Types de données HANA : numérique, chaîne de caractères, décimal
⚡ Résumé intelligent
SAP Les types de données HANA définissent ce que chaque colonne peut stocker, notamment les dates et heures, les valeurs numériques, booléennes, les chaînes de caractères, les valeurs binaires, les objets volumineux et les classifications à valeurs multiples.ping à un type de stockage de colonnes spécifique.

Dans ce nouvel article concernant notre nouveau projet SAP Tutoriel sur les types de données HANA, nous apprendrons :
1) SAP Types de données HANA - SAP Les types de données HANA incluent les types de données Date Heures, Numériques, Booléens, Chaîne de caractères, Binaires, etc.
2) SAP Identifiants HANA – Identifiants délimités et identifiants non délimités
Types de données dans SAP HANA
In SAP Base de données HANA, SQL Les types de données sont les suivants :
| Classification | Sous-Classification | Type de données SQL | Type de magasin de colonnes | Format par défaut |
|---|---|---|---|---|
| Types de date et d'heure | Date | le DATE at | CS_DAYDATE | 'AAAA-MM-JJ' |
| Heure | TIME[DM | CS_SECONDTIME | 'HH24:MI:SS' | |
| Deuxième date | DEUXIÈME JOUR | CS_LONGDATE | 'AAAA-MM-JJ HH24:MI:SS' | |
| Timbre horaire | TIMESTAMP | CS_SECONDDATE | 'AAAA-MM-JJ HH24:MI:SS.FFn' | |
| Types numériques | Petit entier | PETIT INT | CS_INT | Entier non signé 8 bits, plage de 0 à 255 |
| Petit entier | INTEMPLE | CS_INT | Entier signé 16 bits, plage de valeurs : -9 223 372 036 854 775 808 à 9 223 372 036 854 775 807 | |
| Entier | INTEGER | CS_INT | Entier signé 32 bits, plage de valeurs : -9 223 372 036 854 775 808 à 9 223 372 036 854 775 807 | |
| Grand entier | GRAND | CS_FIXED(18,0) | Entier signé 64 bits, plage de valeurs : -9 223 372 036 854 775 808 à 9 223 372 036 854 775 807 | |
| Décimal | DÉCIMAL(p,s) p-Précision échelle s |
CS_FIXED(ps,s) | La précision p peut aller de 1 à 38. L'échelle s peut aller de 0 à p pour SAP Type de données décimal HANA. Si la précision et l'échelle ne sont pas spécifiées, DECIMAL devient un nombre décimal à virgule flottante. |
|
| Petite décimale | PETIT DÉCIMAL | CS_SDFLOAT | Il s'agit d'un nombre décimal à virgule flottante. La précision et l'échelle doivent être comprises entre 1 et 16 pour la précision et -369 et 368 pour l'échelle, en fonction de la valeur stockée. SMALLDECIMAL n'est pris en charge que pour la table de stockage de colonnes. | |
| Nombre réel | REAL | CS_FLOAT | nombre à virgule flottante 32 bits simple précision | |
| Double Numéro | DOUBLE | CS_DOUBLE | un nombre à virgule flottante 64 bits double précision | |
| flotteur | FLOTTEUR(n) | CS_DOUBLE | Il s'agit d'un nombre réel de 32 ou 64 bits, où n spécifie le nombre de bits et doit être compris entre 1 et 53. | |
| Boolean | Boolean | Booléen | CS_INT | VRAI, FAUX et INCONNU (NULL). |
| Chaîne de caractères | Chaîne de caractères de longueur variable | VARCHAR (n) | CS_STRING | Ce type de données de longueur de chaîne HANA est une chaîne de caractères de longueur variable, où 'n' spécifie la longueur maximale en octets et il s'agit d'un entier compris entre 1 et 5000. |
| Caractère Unicode de longueur variable | NVARCHAR(n) | CS_STRING | Chaîne de jeu de caractères Unicode de longueur variable, où indique la longueur maximale en caractères et est un entier compris entre 1 et 5000 | |
| Caractère alphanumérique | ALPHANIUM(n) | CS_ALPHANUM | Caractères alphanumériques de longueur variable, où n indique la longueur maximale et est un nombre entier compris entre 1 et 127 | |
| Texte court | TEXTE COURT(n) | CS_STRING | Il s'agit d'une chaîne de caractères de longueur variable offrant des fonctionnalités de recherche textuelle et de recherche de chaînes. Ce type de données peut être défini pour les tables de colonnes, mais pas pour les tables de lignes. | |
| Types binaires | Texte binaire | VARBINAIRE(n) | CS_RAW | Stocke les données binaires d'une longueur maximale spécifiée en octets, où n indique la longueur maximale et est un entier compris entre 1 et 5000 . |
| Types LOB (types d'objets volumineux) | LOB binaire | BLOB | CS_RAW | De grandes quantités de données binaires |
| Caractère LOB | CLOB | CS_STRING | Données de caractères ASCII | |
| Caractère Unicode LOB | NCLOB | CS_STRING | Grand objet caractère Unicode | |
| TEXTE | TEXTE | CS_STRING | Le type de données TEXT fournit des fonctionnalités de recherche de texte. Ce type de données peut être défini pour les tables Store en colonnes, mais pas pour les tables Store en lignes. | |
| Données texte BINAIRE | BINTEXT | CS_STRING | Le type de données BINTEXT est similaire au type de données TEXT et prend donc en charge les fonctionnalités de recherche de texte, mais il est possible d'insérer des données binaires. Ce type de données peut être défini pour les tables de colonnes, mais pas pour les tables de lignes. | |
| Types à valeurs multiples | tableau | TABLEAU | Il stocke des collections de valeurs du même type de données où chaque élément est lié à exactement une position. Les tableaux peuvent contenir des valeurs NULL comme en l'absence de valeur. |
Choisir la bonne SAP Type de données HANA
Le tableau ci-dessus répertorie les options disponibles. Bien choisir est d'autant plus important dans SAP HANA est plus performant qu'une base de données sur disque, car chaque colonne réside en mémoire et un type surdimensionné consomme une ressource rare sur chaque ligne.
Quatre règles régissent la plupart des décisions :
- Choisissez le plus petit type numérique qui convient. Un indicateur d'état à cinq valeurs possibles nécessite un type TINYINT, et non INTEGER. Sur une table d'un milliard de lignes, la différence se mesure en gigaoctets de mémoire.
- Ne stockez jamais d'argent en REAL ou en DOUBLE. Les nombres à virgule flottante ne peuvent pas représenter les fractions décimales avec exactitude ; les totaux peuvent donc varier de quelques fractions d’unité monétaire. Utilisez le type DECIMAL en spécifiant explicitement la précision et l’échelle.
- Préférez NVARCHAR à VARCHAR. VARCHAR compte les octets et NVARCHAR compte les caractères ; par conséquent, tout texte non ASCII est tronqué de manière inattendue en VARCHAR. SAP Les versions HANA traitent VARCHAR comme NVARCHAR précisément pour cette raison.
- Adapter la précision des dates aux exigences. DATE pour une date calendaire, SECONDATE lorsque l'heure est importante, et TIMESTAMP uniquement lorsque la précision inférieure à la seconde est réellement nécessaire. Chaque niveau de précision supérieur engendre un coût d'espace de stockage supplémentaire par ligne.
Les types d'objets volumineux requièrent une attention particulière. Une colonne BLOB ou NCLOB est pratique mais gourmande en ressources, et la recherche textuelle sur TEXT ou SHORTTEXT ne fonctionne que sur les tables de type colonne ; le choix du stockage et celui du type de données sont donc liés. Les options de stockage sont décrites dans la section suivante : SAP HANASQL tutoriel.
SAP Identifiants HANA
Les identifiants sont utilisés pour représenter le nom dans SQL instruction (par exemple nom de table, nom de vue, nom de colonne, nom d'index, nom de synonyme, nom de procédure, nom de fonction, etc.)
Il existe deux types d'identifiants dans SAP HANA: Identifiants délimités et Identifiants non délimités.
- Identifiants délimités – Il est enfermé dans le délimiteur, Double Citations "". L'identifiant peut contenir n'importe quel caractère, y compris un caractère spécial.
- Identifiants non délimités – Les identifiants non délimités (nom de table, nom de colonne) doivent commencer par une lettre et ne peuvent contenir aucun symbole autre qu'un chiffre ou un trait de soulignement '_'.
Il existe deux types de guillemets pour délimiter comme ci-dessous :
- Guillemet simple (' ') – Il est utilisé pour délimiter la chaîne.
- Double Guillemet (" ")– Il est utilisé pour délimiter les identifiants.
⚠️ Attention : Lors de la création de l'objet, un identifiant non délimité est converti en majuscules. La création d'une table nommée « employee » suivie d'une sélection dans cette table (en minuscules) échoue, car le nom enregistré est « EMPLOYEE ». Il est donc recommandé d'éviter complètement les guillemets doubles ou de les utiliser de manière cohérente.
Conversion de types de données et erreurs courantes
SAP HANA effectue automatiquement les conversions entre types compatibles, mais ces conversions implicites sont souvent à l'origine de résultats erronés et de requêtes lentes. Les conversions explicites, quant à elles, rendent l'intention visible.
Deux fonctions effectuent le travail. CAST convertit une valeur en un type nommé, et TO_DATE, TO_VARCHAR, TO_DECIMAL et leurs fonctions apparentées effectuent la conversion avec une chaîne de format optionnelle.
-- Explicit conversion with CAST SELECT CAST('1234' AS INTEGER) FROM DUMMY; -- Conversion with an explicit format SELECT TO_DATE('2026-07-21', 'YYYY-MM-DD') FROM DUMMY; -- Number to string with fixed decimals SELECT TO_DECIMAL(1234.5678, 10, 2) FROM DUMMY;
Quatre types d'erreurs sont à l'origine de la plupart des problèmes de conversion :
- Dépassement de capacité numérique. L'insertion de 40000 dans un SMALLINT échoue car la plage signée s'arrête à 32 767. Le message mentionne la colonne plutôt que la valeur ; vérifiez donc d'abord la définition.
- Troncation de chaîne. Le chargement d'un texte plus long que la longueur déclarée génère une erreur au lieu d'être tronqué silencieusement. Le nombre de caractères est utilisé pour les types NVARCHAR et le nombre d'octets pour les types VARCHAR.
- Format de date invalide. L'utilisation d'une chaîne de caractères au format incorrect avec la fonction TO_DATE échoue. Il est impératif de toujours spécifier le masque de format plutôt que d'utiliser la valeur par défaut de la session.
- Conversion implicite dans une clause WHERE. Comparer une colonne de caractères à une colonne numérique force une conversion sur chaque ligne, ce qui empêche un filtrage efficace. Convertissez la constante plutôt que la colonne.
Les symboles de comparaison utilisés dans ces filtres sont traités dans SAP opérateurs HANAet la plateforme plus large dans le SAP Tutoriel HANA série.
