Эта ошибка обычно возникает, если для вашей сессии в NLS_NUMERIC_CHARACTERS задана неправильная десятичная точка.
Вы можете изменить настройку для вашей сессии, используя это:
alter session set NLS_NUMERIC_CHARACTERS = '.,';
или
alter session set NLS_NUMERIC_CHARACTERS = ',.';
Это установит десятичный разделитель и разделитель групп только для вашей текущей сессии.
Или в вашем утверждении select есть более общее решение, которое всегда будет принимать '.' в виде десятичной точки в ваших данных из таблицы. И отобразит число с десятичной точкой для вашей сессии.
select to_number(regexp_replace(ESCRIPTION_FIELD, '[^0-9.]+', ''), '999999999999.99999', 'NLS_NUMERIC_CHARACTERS = ''.,''') from <your table>;
EDIT
Если в строке найдено больше десятичной точки, и вы можете принять, что некоторые пропущены, это может сработать.
select to_number(regexp_substr(regexp_replace(ESCRIPTION_FIELD, '[^0-9.]+', ''),'([0-9]*.[0-9]*)'), '999999999999.99999', 'NLS_NUMERIC_CHARACTERS = ''.,''') from <your table>;