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

но у меня это не работает. Искал в Интернет рабочие примеры, что-то не густо с информацией. Кто знает где посмотреть допустимые конструкции регулярных выражений?
...
Рейтинг: 0 / 0
21.06.2016, 11:25
    #39259447
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
firebird и регулярные выражения - не работает при запросах
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
21.06.2016, 11:25
    #39259448
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
firebird и регулярные выражения - не работает при запросах
sergey113,

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

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

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

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

Sergey113> Смотрел.. но не верил своим глазам. Думал не написано.
прекращай думать.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
21.06.2016, 12:00
    #39259500
sergey113
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
firebird и регулярные выражения - не работает при запросах
А вот так не получиться компенсировать недостаток регулярных выражений?
Код: 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
21.06.2016, 12:04
    #39259505
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
firebird и регулярные выражения - не работает при запросах
Hello, Sergey113!
You wrote on 21 июня 2016 г. 12:04:36:

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

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

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

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

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

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

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

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

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

true
...
Рейтинг: 0 / 0
21.06.2016, 12:59
    #39259565
afgm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
firebird и регулярные выражения - не работает при запросах
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
21.06.2016, 13:46
    #39259605
Ivan_Pisarevsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
firebird и регулярные выражения - не работает при запросах
sergey113Но из-за того что при импорте выгруженных в файл данных в MqSQL происходит ошибка Invalid utf8 character string этого не вышло.
В MqSQL вроде есть регулярные выражения.
sergey113пересесть на компьютер с виндой и с кайфом это все сделать в майкрософтовском sql сервере или даже может быть в access.Сколько названий всяких... но ничего не вышло. И файрберда среди них нет. .:)

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


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