Преобразование to_number в индексе

Пытаюсь построить индекс по текстовому полю (v2, хранятся только числа) с преобразованием к числу.

create index i_cvb on tbl(to_number(v2));

Но получаю ошибку:

SQL Error: ORA-01722: неверное число

Насколько понимаю, так сделать не получится? Планировал использовать индекс для поиска вхождения значения '<>'.

Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
PL/SQL Release 11.2.0.4.0 - Production
"CORE   11.2.0.4.0  Production"
TNS for Linux: Version 11.2.0.4.0 - Production
NLSRTL Version 11.2.0.4.0 - Production

Ответы (1 шт):

Автор решения: boogili
create index i_cvb on tbl(to_number(v2 default 0 on conversion error));

Если нужен поиск можно воспользоваться текстовыми индексами

create index i_cvb on tbl(v2) indextype is ctxsys.context;

select *
  from tbl
 where contains (v2 , 'test', 1) > 0
→ Ссылка