SQL查询 - 批量插入后无法将varchar转换为float

时间:2017-10-31 20:53:44

标签: sql-server error-handling type-conversion bulkinsert

我收到错误

  

将数据类型varchar转换为float

时出错

我希望有一些想法。

我正在从.dat文件批量插入到临时表,然后在我收到错误时将数据添加到现有表时将数据转换为浮点数。

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

进行故障排除时,抛出错误的值的长度为9个字符(即1,000.000或4,324.400)。原始数据中没有空值或文本。认为长度是问题,我也尝试过十进制(18,3)但没有成功。

如何将包含1,000.000等字符的varchar转换为浮动(或任何数字)?

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

尝试删除逗号:

select convert(float,replace([Op_Base_Qty],',',''))