Я работаю над проблемой, которую просто не могу понять, но думаю, что сегодня добился определенного прогресса. В предложении where есть следующий код:
AND to_number(REPLACE(TRANSLATE ( decode( INSTR(hra_ans.answer_text, '.',1 , 2), 0 , UPPER(hra_ans.answer_text) , 0),'ABCDEFGHIJKLMNOPQURSTWVXYZ+<>:',' '), ' ','')) >= 10
Теперь этот столбец hra_ans.answer_text может содержать что угодно: от «>» до «> 15», «13,68», «без результатов», до «1.2.3.4» и т. Д. Ошибка недопустимого числа возникает только периодически, не каждый время. Я попытался заменить Translate на Regexp_Replace, используя выражение '[^ 0-9.]', Но это тоже не решает проблему. Я нашел это на SO:
Вот похожий вопрос, на который я наткнулся.
В этом посте выясняется, что ошибка может быть вызвана отсутствием определенного порядка операций. Вполне вероятно, что я сталкиваюсь с такой же ситуацией? Если нет, может ли это вызвать другое поведение?
Спасибо!