Как отмечается в ответе Лукаша на вопрос, с которым вы связались, синтаксис on conversion error
был добавлен в 12cR2 , поэтому вы не можете использовать его в 11gR2 - что является причиной ошибки, которую вы получаете.
Метод регулярного выражения, описанный в этом вопросе, работает, хотя:
SELECT *
FROM dual
WHERE
(
COALESCE(TO_NUMBER(REGEXP_SUBSTR('T', '^\d+')), 0)
>
COALESCE(TO_NUMBER(REGEXP_SUBSTR('5', '^\d+')), 0)
);
no rows selected
SELECT *
FROM dual
WHERE
(
COALESCE(TO_NUMBER(REGEXP_SUBSTR('7', '^\d+')), 0)
>
COALESCE(TO_NUMBER(REGEXP_SUBSTR('5', '^\d+')), 0)
);
D
-
X