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