SELECT TO_NUMBER('*') FROM DUAL
Это, очевидно, дает мне исключение:
ORA-01722: недопустимый номер
Есть ли способ «пропустить» его и получить 0
или NULL
вместо?
Вся проблема: у меня есть поле NVARCHAR2
, которое содержит числа, а не почти ;-) (например, *
) и Мне нужно выбрать в столбце самое большое число.
Да, я знаю, что это ужасный дизайн, но это то, что мне сейчас нужно ...: -S
UPD :
Для себя Я решил эту проблему с помощью
COALESCE(TO_NUMBER(REGEXP_SUBSTR(field, '^\d+')), 0)