Je reçois une erreur
Erreur lors de la conversion du type de données varchar en float
et j'espère des idées.
Je fais une insertion en bloc à partir d'un file .dat
vers une table temporaire, puis je souhaite convertir datatables en float lorsque je l'ajoute à une table existante lorsque j'obtiens l'erreur.
CREATE TABLE #Temp_Table ([Op_Base_Qty] VARCHAR(50) NULL) BULK INSERT #Temp_Table FROM '\\File_Path.DAT' WITH (FIRSTROW = 2, FIELDTERMINATOR = '|', ROWTERMINATOR = '\n') TRUNCATE TABLE [DBO].[TABLE2] INSERT INTO [DBO].[TABLE2]([Qty]) SELECT CAST([Op_Base_Qty] AS Float) FROM #Temp_Table
En effectuant un dépannage, les valeurs qui émettent une erreur ont une longueur de 9 caractères (soit 1 000 000 ou 4 324 400). Il n'y a pas de caractère nul ou de text dans datatables brutes. Pensant que la longueur était le problème, j'ai aussi essayé la décimale (18,3) sans succès.
Comment puis-je convertir un varchar
avec des caractères comme 1.000.000 à un float (ou numérique)?
Merci de votre aide
essayez de supprimer les virgules:
select convert(float,replace([Op_Base_Qty],',',''))