drno-reg
@drno-reg
см не кратко

Как правильно обработать поле, чтобы по нему была возможность выполнить LIKE?

Здравствуйте.

Возникла элементарная на первый взгляд задача сделать select c фильтром LIKE.
НО проблема возникла в том, что поле имеет размер Long Varchar.

Каким образом преобразовать поле таблицы, чтобы можно было выполнить LIKE?

Варианты с усечением длины прошу не предлагать.
  • Вопрос задан
  • 147 просмотров
Решения вопроса 1
drno-reg
@drno-reg Автор вопроса
см не кратко
в vertica подобных Oracle пакетов для работы с длинными типами данных нет
и не рекомендуют их использовать

For optimal performance of LONG data types, HP Vertica recommends that you:

Use the LONG data types as storage only containers; HP Vertica does not support operations on their content.
Use the VARBINARY and VARCHAR data types, instead of their LONG counterparts, whenever possible. The VARBINARY and VARCHAR data types are more flexible and have a wider range of operations.


НО есть такой вариант

SELECT * FROM WAREHOUSE.ALL_EVENTS a 
WHERE REGEXP_LIKE(a.original_data, 'd963');
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@AnyKey80lvl
LIKE по LONG VARCHAR - очень плохая идея в Vertica (а по опыту - вообще LONG-поля - плохая идея в Vertica в плане производительности).

Лучше попробовать Text Search.
https://my.vertica.com/docs/8.1.x/HTML/index.htm#A...

Либо делать копию первых 65КБ из LONG в доп. колонку VARCHAR(65000), если этого хватит.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы