Как эффективно определить длину с точностью для большого десятичного числа в informatica

#sql #informatica

Вопрос:

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

Ответ №1:

Если оно поступает из источника в виде числа (например, с плавающей точкой), просто сравните его с 10^29 .

Если он представлен в виде строки, сначала используйте TO_FLOAT() , как описано в документах, а затем выполните сравнение 10^29 , как описано выше.