powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / firebird и регулярные выражения - не работает при запросах
25 сообщений из 26, страница 1 из 2
firebird и регулярные выражения - не работает при запросах
    #39259434
sergey113
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пытаюсь использовать для очистки полей такую конструкцию
Код: plaintext
1.
2.
UPDATE MY_TABLE
SET 
    TEL_MOB = replace(TEL_MOB,'[а-я]','');

но у меня это не работает. Искал в Интернет рабочие примеры, что-то не густо с информацией. Кто знает где посмотреть допустимые конструкции регулярных выражений?
...
Рейтинг: 0 / 0
firebird и регулярные выражения - не работает при запросах
    #39259447
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sergey113,
replace:
https://www.ibase.ru/files/firebird/langref25rus/index.html#d0e28131
нет тут регулярных.

а регулярные выражения в similar to
https://www.ibase.ru/files/firebird/langref25rus/index.html#d0e4148

увы.
...
Рейтинг: 0 / 0
firebird и регулярные выражения - не работает при запросах
    #39259448
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sergey113,

потому что регулярки в replace не поддерживаются. Если знаний хватает напиши свою UDF или UDR.

В 2.5 регулярки есть только в SIMILAR TO, в 3.0 появилась поддержка регулярок в SUBSTRING.

Читай доку и не пытайся что-то применить от другой СУБД. Руководство по языку SQL СУБД Firebird 3.0
...
Рейтинг: 0 / 0
firebird и регулярные выражения - не работает при запросах
    #39259458
sergey113
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое Вам спасибо! Я уже несколько часов потратил впустую тренируясь. Очень помогли.
...
Рейтинг: 0 / 0
firebird и регулярные выражения - не работает при запросах
    #39259474
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sergey113Я уже несколько часов потратил впустую тренируясь.

Нда... За это время уже давно бы мог заглянуть в документацию и посмотреть поддерживаемые конструкции языка. Ладно бы если бы ты это сказал 2 года назад, когда единой доки по языку SQL для FB не было. Хотя даже тогда можно было прошерстить релиз ноты и LangRef Update.
...
Рейтинг: 0 / 0
firebird и регулярные выражения - не работает при запросах
    #39259493
sergey113
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Смотрел.. но не верил своим глазам. Думал не написано.
...
Рейтинг: 0 / 0
firebird и регулярные выражения - не работает при запросах
    #39259497
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Sergey113!
You wrote on 21 июня 2016 г. 11:58:21:

Sergey113> Смотрел.. но не верил своим глазам. Думал не написано.
прекращай думать.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
firebird и регулярные выражения - не работает при запросах
    #39259500
sergey113
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А вот так не получиться компенсировать недостаток регулярных выражений?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
create procedure test
as
declare variable i integer;
declare variable s=[а,м];
begin
  i = 0;
  while (:i < 2) do
    begin
      UPDATE SECOND_IMP
SET 
    TEL_MOB = replace(TEL_MOB,s[i],'');
      i = i + 1;
    end 
end;

Что-то у меня ругает ся не хочет работать
...
Рейтинг: 0 / 0
firebird и регулярные выражения - не работает при запросах
    #39259505
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Sergey113!
You wrote on 21 июня 2016 г. 12:04:36:

Sergey113> Что-то у меня ругает сянадо выяснить что

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
firebird и регулярные выражения - не работает при запросах
    #39259509
sergey113
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В мануале написано
авторВ Firebird (до версии 3.0) нет PSQL функций. Однако вы можете использовать запрос или подзапрос к хранимым процедурам выбора для их замены.
А у меня firebird 2.5 так что видимо не получится ничего.
Ладно.. будем искать :)
Спасибо за помощь.
...
Рейтинг: 0 / 0
firebird и регулярные выражения - не работает при запросах
    #39259512
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sergey113А у меня firebird 2.5 так что видимо не получится ничего.самокритично... но может таки доку почитать? Глядишь и получится.
...
Рейтинг: 0 / 0
firebird и регулярные выражения - не работает при запросах
    #39259514
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sergey113,

если хочешь чтобы тебе помогли решить твою проблему, то озвучь задачу. Для начала объясни что ты там чистишь и для чего? Что это за телефоны с буквами? Если их там быть не должно изначально, то ты должен был проконтролировать это ещё на этапе ввода. Для этого можно использовать триггеры или CHECK CONSTRAINT в которых применяется SIMILAR TO.
...
Рейтинг: 0 / 0
firebird и регулярные выражения - не работает при запросах
    #39259517
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sergey113В мануале написано
авторВ Firebird (до версии 3.0) нет PSQL функций. Однако вы можете использовать запрос или подзапрос к хранимым процедурам выбора для их замены.
А у меня firebird 2.5 так что видимо не получится ничего.
Ладно.. будем искать :)
Спасибо за помощь.

и? Прочитал что нет PSQL функций, а как их заменить нет. До появления 3.0 люди как-то жили.
...
Рейтинг: 0 / 0
firebird и регулярные выражения - не работает при запросах
    #39259525
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисЧто это за телефоны с буквами?
Ну, знаешь, такие телефоны типа 1-800-HOT-DOG...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
firebird и регулярные выражения - не работает при запросах
    #39259529
sergey113
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть база firebird в виде файла с расширением GDB. Из нее мне надо выдернуть ФИО - дата - рождения - телефон.
Программист который писал программу не делал фильтрацию ввода и поэтому в номерах телефонов уже написана всякая дребедень *)(- мама папа жена и т.п.
Вот такая не сложная задача. Которая осложняется всякими вещами типа отсутсвия регулярных выражений.
Хотел импортировать данные в MqSQL.
Но из-за того что при импорте выгруженных в файл данных в MqSQL происходит ошибка Invalid utf8 character string этого не вышло.
В MqSQL вроде есть регулярные выражения.
...
Рейтинг: 0 / 0
firebird и регулярные выражения - не работает при запросах
    #39259532
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
имхо, тут программист нужен...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
firebird и регулярные выражения - не работает при запросах
    #39259533
sergey113
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хотел то всего sql зарпосом выгрузить нужные столбцы, заменить непотребные символы, сделать trim, отбросить те номера которые <11 и >11, заменить номера типа 8?????????? на 7??????????
А вот такая война выходит на два дня...
...
Рейтинг: 0 / 0
firebird и регулярные выражения - не работает при запросах
    #39259537
sergey113
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мимопроходящийимхо, тут программист нужен...

нифига.. сам сделаю... Вопрос только больше записей придется отбросить или меньше.
Второй какбы подвопрос пересесть на компьютер с виндой и с кайфом это все сделать в майкрософтовском sql сервере или даже может быть в access.
И не надо будет никаких программистов если среда для работы хорошая.
...
Рейтинг: 0 / 0
firebird и регулярные выражения - не работает при запросах
    #39259544
sergey113
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ivan_Pisarevskysergey113А у меня firebird 2.5 так что видимо не получится ничего.самокритично... но может таки доку почитать? Глядишь и получится.

Доки можно читать бесконечно.. особенно на неродном для меня английском. Если бы жизнь была бесконечна я бы их читал одну за другой всю жизнь. Даже на английском.
Но реалии таковы, что я смертен, решаю локальную задачу на firebird который не нравится. Поэтому совсем уж зарываться в чтение не буду.
...
Рейтинг: 0 / 0
firebird и регулярные выражения - не работает при запросах
    #39259548
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sergey113,

если всего-то надо перекинуть данные в другую СУБД, то перекидывай их как есть. И уже в ней выполняй свои извращённые функции по очистке. Всё равно Firebird ты не знаешь. Курс молодого бойца тебе здесь преподавать не будут.
...
Рейтинг: 0 / 0
firebird и регулярные выражения - не работает при запросах
    #39259551
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sergey113Доки можно читать бесконечно.. особенно на неродном для меня английском.

дружище, вот для кого здесь давали ссылки на русскую документацию? Ну ладно, продолжай есть кактус.
...
Рейтинг: 0 / 0
firebird и регулярные выражения - не работает при запросах
    #39259555
sergey113
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денисsergey113,

если всего-то надо перекинуть данные в другую СУБД, то перекидывай их как есть. И уже в ней выполняй свои извращённые функции по очистке. Всё равно Firebird ты не знаешь. Курс молодого бойца тебе здесь преподавать не будут.

true
...
Рейтинг: 0 / 0
firebird и регулярные выражения - не работает при запросах
    #39259565
afgm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sergey113,
идея такая:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
create or alter procedure SPLIT_WORD_BY_LETTERS (
    WORD varchar(1024))
returns (
    NN integer,
    LETTER varchar(1))
AS
begin
  nn = 1;
  while ( nn <= character_length(:word) ) do
  begin
    letter = substring(:word from :nn for 1);
    suspend;
    nn = nn + 1;
  end
end

create or alter procedure FILTER_LETTERS (
    INPUT_WORD varchar(1024),
    FILTER_STRING varchar(1024))
returns (
    WORD varchar(1024))
AS
begin
  execute statement
    ('select list(letter, '''') from split_word_by_letters(:input_word) where'||:filter_string)
    (input_word := :input_word)
  into :word;
  suspend;
end



Код: sql
1.
select * from filter_letters('test word и это важно for 123-45-67 it', ' upper(letter) NOT between ''А'' and ''Я'' ')



Код: sql
1.
2.
3.
UPDATE MY_TABLE
SET 
    TEL_MOB = (select word from filter_letters(TEL_MOB , ' upper(letter) NOT between ''А'' and ''Я'' '))
...
Рейтинг: 0 / 0
firebird и регулярные выражения - не работает при запросах
    #39259605
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sergey113Но из-за того что при импорте выгруженных в файл данных в MqSQL происходит ошибка Invalid utf8 character string этого не вышло.
В MqSQL вроде есть регулярные выражения.
sergey113пересесть на компьютер с виндой и с кайфом это все сделать в майкрософтовском sql сервере или даже может быть в access.Сколько названий всяких... но ничего не вышло. И файрберда среди них нет. .:)

sergey113Хотел то всего sql зарпосом выгрузить нужные столбцы, заменить непотребные символы, сделать trim, отбросить те номера которые <11 и >11, заменить номера типа 8?????????? на 7??????????$100
...
Рейтинг: 0 / 0
firebird и регулярные выражения - не работает при запросах
    #39259623
afgm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sergey113Второй какбы подвопрос пересесть на компьютер с виндой и с кайфом это все сделать в майкрософтовском sql сервере или даже может быть в access.
Вот это странно, учитывая, что в MSSQL тоже нет регулярок. Если только C# и DTS. Про access молчу.
...
Рейтинг: 0 / 0
25 сообщений из 26, страница 1 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / firebird и регулярные выражения - не работает при запросах
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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