Sybase 12: условие поиска REGEXP не понято - PullRequest
1 голос
/ 24 января 2011

Я использую Sybase 12.5.3 и хочу / нужно выполнить сопоставление с регулярным выражением.

В справке Sybase говорится, что функции регулярного выражения были доступны с версии 11, но я не могу заставить что-либо работать.

Этот документ описывает условия поиска REGEXP и ПОХОЖИЕ НА.Я попробовал оба из них безуспешно, на разных таблицах.

Например:

SELECT * 
  FROM REPORTS 
 WHERE name regexp '.*' 

... выдает ошибку:

Неверный синтаксис рядом с 'regexp'.

Единственные результаты поиска для этой ошибки связаны с MS-SQL.

Я пробовал разные вещи, в том числе с использованием REGEXP_LIKE и SIMILAR TO, но я получаю такой же видошибка, как будто это слово не понято.Я что-то пропустил?Столбец, который я сравниваю, содержит строки.

Я также не могу найти никакой опции для включения / выключения этих функций, и сама строка, которую я предоставляю, не имеет к ней никакого отношения.

Я использую DBArtisan 8.7.5, если это актуально.

Ответы [ 3 ]

6 голосов
/ 25 января 2011

Ваша ссылка идет на руководство по Sybase Anywhere, но на 12.5.3, который вы используете?Ну, это похоже на номер версии Sybase ASE.Абсолютно разные продукты - я не думаю, что ASE поддерживал Regex до ASE 15. Если вы используете ASE, вам нужно найти другой способ сделать это.

2 голосов
/ 05 сентября 2011

Вы можете использовать like вместо функции и предоставлять регулярное выражение, подобное сопоставление классов персонажей - например, name like "[0-9]"

См. Документы: http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc38151.1520/html/iqrefbb/CACGCGGC.htm

0 голосов
/ 25 января 2011

Это может быть regexp('.*'), но, посмотрев руководство по Sybase для 12.5.x, я не думаю, что в этой версии есть метод регулярного выражения.

...