Я поддерживаю процесс ETL, который преобразует входы плоских файлов в таблицу базы данных SqlServer. Код составляет почти 100% T-SQL и работает внутри БД. Я не владею кодом и не могу изменить рабочий процесс. Я могу только помочь настроить «перевод» SQL, который принимает данные файла и преобразует его в данные таблицы (подробнее об этом позже).Преобразование/литье nVarChar с разделителем-запятой в десятичное
Теперь о том, что отказ от ответственности вне пути ...
Один из наших поставщиков файлов в последнее время изменилось, как они представляют собой денежную сумму от '12345.67'
до '12,345.67'
. Наш SQL, который преобразует значение, выглядит как SELECT FLOOR(CAST([inputValue] AS DECIMAL(24,10)))
и больше не работает. I., запятая разбивает литой.
Учитывая, что я должен хранить окончательное значение, как Decimal (24,10)
тип данных (да, я понимаю, что FLOOR
стирает всю точность после десятичной точки - дизайнер не был синхронизирован с заказчиком), что я могу сделать эффективно использовать эту строку?
Благодарим вас за идеи.
все эти ответы решают проблему. –
@KM: Я сейчас обсуждаю эти предложения с нашей группой DBA. С моей точки зрения, общий подход, предложенный (используя Replace()), по-видимому, работает. Скоро будет обновляться. – SethO