J'ai rencontré un débordement arithmétique dans une simple instruction SELECT. La requête était comme ci-dessous, par exemple
SELECT [SaleValue] FROM Sales
[SaleValue]était de type de données decimal(9,0)et non une colonne calculée.
La raison en est que, d'une manière ou d'une autre, la colonne avait une ligne où ce champ stockait une valeur PLUS GRANDE que le type de données spécifié, par exemple decimal(10,0).
Je n'ai pu faire fonctionner la sélection que lorsque j'ai augmenté la taille de la colonne. Le tableau en question a deux autres instances dans deux autres colonnes et lignes.
Comment cette situation était-elle possible? Comment une valeur hors plage a-t-elle été enregistrée dans la colonne en premier lieu?
J'utilise Microsoft SQL Server + ceci est une table de base, pas une vue.
decimal- un decimal(9,0)devrait occuper 5 octets, un decimal(10,0)9. Donc, je pense qu'il est moins probable que vous puissiez le faire en modifiant les tables système car vous n'aurez pas la taille de stockage correcte pour les données de chaque ligne.