Преобразование 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