так что на самом деле это была моя ошибка из-за неправильного прочтения документации оракула, касающейся числовой шкалы и точности.Я думал, что точность - это часть перед «.», А масштаб после нее, но нет, точность - это число всех цифр.Это вызвало мою проблему и в другом столбце.
Чтобы ответить на мой собственный вопрос: ORA-01438 не будет выброшено для чисел, которые соответствуют типу, используемому в слое БД.Поэтому, если я знаю, что тип данных, используемый на уровне приложения, не может быть больше, чем число (15), я могу смело использовать long в java и NUMBER (15) в БД.Пока это ограничение не нарушено, все в порядке.И соблюдение этого ограничения важно в первую очередь, и BigInteger не поможет без него, поскольку BigInteger может быть больше, чем NUMBER (37).