powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / similar to и проверка значения поля
5 сообщений из 5, страница 1 из 1
similar to и проверка значения поля
    #38782126
re-dis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.

С регулярными выражениями только начал разбираться, поэтому если что - сильно не смейтесь :)

Но тут же наткнулся вот на такое. Добавил я к полю проверку значения
Код: plsql
1.
ALTER TABLE SPR ADD CONSTRAINT CHK_SPR_SHORT_NAME_N CHECK (SHORT_NAME_N similar to '[ А-Яа-я0-9]*\_{1,1}[ А-Яа-я0-9]*\_{1,1}[ А-Яа-я0-9]*\_{1,1}[ А-Яа-я0-9/]*' escape '\');


После чего пытаюсь выполнить update:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
update spr set spr.short_name_n =
  iif(spr.short_name is not null and trim(spr.short_name)<>'',spr.short_name,'')||'__'||
  iif(spr.street_str is not null and trim(spr.street_str)<>'',substring(spr.street_str from 1 for 5),'')||'_'||
  iif(spr.house_str is not null and trim(spr.house_str)<>'',spr.house_str,'')
where
  (iif(spr.short_name is not null and trim(spr.short_name)<>'',spr.short_name,'')||'__'||
  iif(spr.street_str is not null and trim(spr.street_str)<>'',substring(spr.street_str from 1 for 5),'')||'_'||
  iif(spr.house_str is not null and trim(spr.house_str)<>'',spr.house_str,''))
   similar to '[ А-Яа-я0-9]*\_{1,1}[ А-Яа-я0-9]*\_{1,1}[ А-Яа-я0-9]*\_{1,1}[ А-Яа-я0-9/]*' escape '\'


и получаю ошибку.
Опытным путем выясняю, что проблему создают слова, содержащие буквы "ё" и "Ё". Изменяю проверку на
Код: plsql
1.
ALTER TABLE SPR ADD CONSTRAINT CHK_SPR_SHORT_NAME_N CHECK (SHORT_NAME_N similar to '[ А-ЯЁа-яё0-9]*\_{1,1}[ А-ЯЁа-яё0-9]*\_{1,1}[ А-ЯЁа-яё0-9]*\_{1,1}[ А-ЯЁа-яё0-9/]*' escape '\');


и все обновляется.
Вопрос: почему в запросе слова с буквами "ё" выбираются, но проверку они не проходят? Это я "накосячил" или это "особенности" работы сервера?
Firebird 2.5.3 SC x64.
...
Рейтинг: 0 / 0
similar to и проверка значения поля
    #38782132
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
re-dis,

набор символов и COLLATE какой?
...
Рейтинг: 0 / 0
similar to и проверка значения поля
    #38782145
re-dis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Дениснабор символов и COLLATE какой?

У всех полей win1251 и то и то, а вот у поля SHORT_NAME оказался collate PXW_CYRL. Мне кажется кажется я начал понимать почему так произо. Но все же спрошу. В этом "проблема"?
...
Рейтинг: 0 / 0
similar to и проверка значения поля
    #38782148
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
re-dis,

возможно.
...
Рейтинг: 0 / 0
similar to и проверка значения поля
    #38782155
re-dis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денисвозможно.

Да, из-за этого. Проверил. Спасибо. Вопрос снят.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / similar to и проверка значения поля
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]