2016-05-04 34 views
1

floatに変換する際に問題が発生しました。 「1行のファイルからデータ型varcharをfloatに変換する際にエラーが発生しました

0.7883 
Msg 8114, Level 16, State 5, Line 9 
Error converting data type varchar to float. 

両CASTとドンを変換:

DECLARE @USRATE as varchar(10); 

SELECT @USRATE = BulkColumn 
FROM OPENROWSET(BULK 'file.txt', SINGLE_NCLOB) rate_from_file; 

PRINT @USRATE; 
PRINT CAST(@USRATE AS float); 
PRINT CONVERT(FLOAT, @USRATE); 

txtファイル単に小数点値(すなわち0.8000キャリッジリターンが続く)が、上記コマンドリターンの両方である:ここでコードであります仕事。同じ出力でDECIMALに変換しようとしました。どのようにこれを修正するための任意のアイデア?

答えて

3

したがって、@usrateには有効な数字として認識されない文字が含まれています。回線の終わりが変換を妨害している可能性があります。あなたが試してみてください:

select cast(left(@usrate, 6) as float) 

ところで、あなたは浮動小数点精度の周りの問題を回避するために、小数ではなくfloatに変換されなければならない引数があります。

+0

サー、あなたは私の一日を作った!それは完全に働いた:) あなたが言及した精度引数に注意します。ありがとうございました! – JulioQc

関連する問題