SQL 查询 - 批量插入后无法将 varchar 转换为 float
SQL Query - Cannot convert varchar to float after bulk insert
我收到一个错误
Error converting data type varchar to float
我希望得到一些想法。
我正在从 .dat
文件批量插入到临时文件 table,然后想在将数据添加到现有 table 时将数据转换为浮点数我收到错误消息。
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)。原始数据中没有空值或文本。认为长度是问题,我也试过 decimal (18,3) 没有成功。
如何将包含 1,000.000 等字符的 varchar
转换为浮点数(或任何数字)?
感谢您的帮助
尝试删除逗号:
select convert(float,replace([Op_Base_Qty],',',''))
我收到一个错误
Error converting data type varchar to float
我希望得到一些想法。
我正在从 .dat
文件批量插入到临时文件 table,然后想在将数据添加到现有 table 时将数据转换为浮点数我收到错误消息。
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)。原始数据中没有空值或文本。认为长度是问题,我也试过 decimal (18,3) 没有成功。
如何将包含 1,000.000 等字符的 varchar
转换为浮点数(或任何数字)?
感谢您的帮助
尝试删除逗号:
select convert(float,replace([Op_Base_Qty],',',''))