Je migre des données d'une table vers une nouvelle table. L'ancienne table utilise FLOAT et dans la nouvelle table j'utilise DECIMAL comme attribut de champ.Conversion de données flottantes en données décimales par migration
J'utilise la déclaration suivante qui a bien fonctionné: CAST (OLD_COLUMN_NAME comme DECIMAL (9,2) AS « NEW_COLUMN_NAME »
qui fonctionne comme un charme jusqu'à ce que je frappe la bosse sur la route Le vieux données. est défini comme float, null, le nouveau champ est défini comme décimal (5,5) .Je comprends que decimal (5,5) nécessitera toutes les données derrière la décimale pour 5 positions.Je me demande si elles sont un moyen de gérer cette Problème de déplacement des données d'un champ de données flottantes vers un champ de données décimal
Les données d'entrée provenant de l'ancien champ sont variées et ressemblent à ceci: 5, 0.5, 0.5, 0.75, 2 et ainsi de suite
L'erreur que je reçois est:
Msg 8115, Level 16, State 6, Line 8 Arithmetic overflow error converting float to data type numeric.The statement has been terminated.
Le code est contre une base de données SQL Server 2005 en utilisant SQL Server 2008. Vous ne savez pas cette question est importante, mais je pense inclure cette information.
Quelqu'un pourrait-il nous éclairer sur la façon de résoudre ce problème de conversion de données? Je vous remercie!
essayé et a obtenu le errorMsg 8115, niveau 16, état 6, ligne 17 dépassement Arithmétique Erreur lors de la conversion de float en type de données numérique. – JMS49
vérifier que j'ai réessayé ceci. Voici le code: sélectionner Top 700 CONVERT (VARCHAR (13), cLehmanNo) \t sous 'LOAN_NUMBER' , CONVERT (VARCHAR (3), cInvestorID) sous 'INVESTOR_ID' , CAST (ROUND (fLateChargeFact, 5) en décimal (5,5)) eN \t # LTS_MAP2 dE Loanmaster maintenant, je reçois cette erreur: Msg 1038, niveau 15, état 5, ligne 8 Un objet ou le nom de la colonne est manquante ou vide. Pour les instructions SELECT INTO, vérifiez que chaque colonne a un nom. Pour les autres instructions, recherchez les noms d'alias vides. Les alias définis comme "" ou [] ne sont pas autorisés. Changez l'alias en un nom valide. – JMS49