#sql #informatica
Вопрос:
У нас есть файл, поступающий из исходной системы, со значением столбца 418871907669537340000000000000.00233, и нам нужно загрузить их в таблицу SQL с десятичным типом данных ( 38,9), т. е. точность не может превышать 29 символов, иначе это приведет к сбою. Мы не можем использовать TO_INTEGER(input_value), так как целое число просто принимает 10 цифр, иначе произойдет сбой. Мы кое-что используем : находим позицию десятичной дроби и с помощью подстроки находим длину прецизионной части, и если точность > 29 символов, помечаем эту запись как отброшенную, что является дорогостоящим подходом, файл содержит миллион строк и 100 десятичных столбцов.
Ответ №1:
Если оно поступает из источника в виде числа (например, с плавающей точкой), просто сравните его с 10^29
.
Если он представлен в виде строки, сначала используйте TO_FLOAT()
, как описано в документах, а затем выполните сравнение 10^29
, как описано выше.