| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Oracle > альтернатива LIKE (что посаветуете) |
| Автор: DimW 28.6.2010, 13:00 | ||||
| всем привет. описание ситуации: есть таблица с полем text varchar2(2000), в котором хранится информация о проводимых закупках той или иной продукции:
задача - из всего разнообразия закупок, выбрать для клиента закупки по его тематике по словосочетаниям. словосочитания хранятся в справочнике.
запрос выбирает закупки рыбной продукции и исключает замороженную рыбу и полуфабрикаты. в результат устраивает, но хотелось бы избавиться от динамической части с LIKE и NOT LIKE что посоветуете? ЗЫ. использовать OracleText нет возможности т.к. Oracle Standart Edition One |
| Автор: Zloxa 29.6.2010, 09:57 | ||
регекспом?
|
| Автор: DimW 29.6.2010, 11:08 | ||
| догадывался что regexp поможет, но выражение родить не мог, спасибо! Zloxa, из твоего опыта, траблы с производительностью при использовании regexp были? И интересуют все подводные камни. еще вопрос, мне не всегда требуется применять словосочетания для подбора заявок, некоторых интересуют все заказы. в случае с regexp_like понятно передал * и выбирается все:
а как быть в случае с not regexp_like? быть может возможно соответствие и отрицание построить одним выражением? ну или какое выражение применить для not regexp_like что бы отрицание не применялось? Добавлено через 9 минут и 35 секунд странно, заявленная опция 'i' - Case insensitive matching не работает? или работает не так как подумал? |
| Автор: DimW 29.6.2010, 11:26 | ||||
а вот и камушки:
признак конца строки(chr(10)) не хавает, как с этим быть? |
| Автор: DimW 29.6.2010, 11:51 | ||
спасибо помогло у меня для 2000 клиентов динамический лайк хавает едро полностью и формирование данных для всех клиентов занимает примерно 4 часа - ВОТ ЭТО ПРОБЛЕМА! а по поводу есть что сказать? |
| Автор: Zloxa 29.6.2010, 12:03 | ||||
Не заметил. Ты опубликовал второй пост, пока я тебе отвечал на первый.
эт не камни, это фича. а вот то что i не работает с кирилицей - видать камни. |
| Автор: DimW 29.6.2010, 12:10 | ||
понятно, вечером погоняю, посмотрю и в продуктив спасибо, как всегда исчерпывающий ответ! |
| Автор: Zloxa 29.6.2010, 12:12 |
| кстати, попробуй на 11й c i и без upper мне интересно - пофиксили? |
| Автор: DimW 29.6.2010, 12:16 |
вечером попробую, о результатах отпишусь. |
| Автор: DimW 29.6.2010, 19:41 | ||
да! |
| Автор: Zloxa 30.6.2010, 09:50 | ||||
пля
:(( вопрос для меня открыт |
| Автор: DimW 30.6.2010, 12:10 | ||
для меня не критично ибо:
услуга без описания - все равно, что улица без названия... Добавлено @ 12:17 кстати, погонял я вчера регэксп на своих нанных: 11g, ~300 000 строк - лайку проиграл в ~4,5 раза. 10g, ~50 000 сток - лайку проиграл в ~85 раз. то ли в 11g аптимизаровали регулярки, либо при увеличении объема данных лайк значительно теряет производительность. но даже на 11g результат не утишительный - боюсь на продуктив ставить. есть еще варианты как динамику в статику переделать при нынешней архитектуре? |