В Oracle 11.2 существует ли какой-то формат чисел nf, который будет работать с to_number для разбора произвольной длины varchar2s, содержащей цифры и запятые?Oracle 11.2 to_number multiple commas
Я могу добиться этого без числового формата, используя regexp_replace, но я бы предпочел добиться того же, используя только формат чисел.
например, следующие 2 заявления работы:
select to_number(regexp_replace('12,345', ',', '')) from dual;
select to_number(regexp_replace('1,234,567', ',', '')) from dual;
, но я бы предпочел:
select to_number('12,345', nf) from dual;
select to_number('1,234,567', nf) from dual;
где nf
это одна строка Числовой формат, который работает для обоих заявлений.
Если я попробую nf = '99,999'
, первое утверждение работает, но второе не удается.
Спасибо.
Альтернативное более короткое решение для строк любой поддерживаемой длины: http://stackoverflow.com/a/4143834/603516 – Vadzim
@Vadzim - достаточно забавно, я только что заново изобрел это и собирался добавить его в этот ответ. Но теперь я вижу, что я уже поддержал ответ Винсента, так что, возможно, он скрывался в моей голове ...Возможно, существенные различия заключаются в том, что 'translate' будет работать с последним примером, который я дал, поскольку позиции разделителя не фиксированы, и он будет работать с десятичными знаками. Благодарю. –