Преобразуйте научную запись для поплавки при использовании OpenRowset для импорта файла .csv

Я использую OpenRowset для импорта файла CSV на SQL Server. Один из столбцов в файле CSV содержит номера в научных обозначениях (1.08E + 05), а столбец в таблице вставляется

по умолчанию, он импортирует значение как 1 и игнорирование .08E + 05.

Я попробовал использовать CAST () и преобразовывать (), чтобы преобразовать значение непосредственно при выполнении запроса, а также настройки данных DataType в таблице в виде строки символов и импортировании его как таковой. Все эти методы имеют одинаковое поведение, где .08E + 05 игнорируется.

Существует ли способ иметь значение, импортируемую как 108000 вместо 1 без .08E + 05, не изменив сам файл CSV?

Настройка DataType в качестве варечана и чтения в файле CSV, появляется Имейте тот же эффект со следующим кодом:

CREATE TABLE #dataTemp (StartDate datetime, Value varchar(12))

SET @insertDataQuery = 'SELECT Date, CSVValue from OpenRowset(''MSDASQL'', ''Driver={Microsoft Text Driver (*.txt; *.csv)}; DefaultDir=' 
SET @insertDataQuery = @insertDataQuery + 'C:\Data\;'',''SELECT * FROM '+ '11091800.csv' + ''')'

INSERT INTO #dataTemp EXEC(@insertDataQuery)

SELECT * FROM #dataTemp

Не все значения в файле CSV имеют научную обозначение и значение без него, например, 81000 столкнутся без проблем.

9
задан amarcy 19 September 2011 в 15:53
поделиться