powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / подскажите, куда копать: процедура поиска дублей по опечаткам. DB2 v.8.1
3 сообщений из 3, страница 1 из 1
подскажите, куда копать: процедура поиска дублей по опечаткам. DB2 v.8.1
    #37403310
skibars
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброе время суток знатокам.
Есть задача поиска возможных ошибок/опечаток в базе данных.
Например, совпадают ИО (имя, отчество) и д/р, фамилии отличаются только одним символом.
Пока что сделал табличку, куда вывел в два столбца фамилии с одинаковой длиной.

Посмотрел по функциям - могут пригодиться locate, posstr. like?
Допустим, напишу, как находить строку с нужными фамилиями (хотя тож смутно представляю, как это на SQL сделать. Думаю, что придется посимвольным перебором-сравнением)
Не знаю, как "ходить" по строкам таблицы. На всякий случай в таблице добавил поле-автоинкремент.
...
Рейтинг: 0 / 0
подскажите, куда копать: процедура поиска дублей по опечаткам. DB2 v.8.1
    #37403475
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skibars,

Здравствуйте.
Идея в том, чтобы написать (скажем, на java) свою маленькую функцию транслитерации , которая будет каждую русскую букву строки транслировать в латиницу.
Эту функцию можно использовать внутри функции soundex .
Вы можете даже создать generated поле в таблице по выражению soundex(translit(name)) для ускорения поиска. В этом поле у "близких" по звучанию слов будет одинаковый код.
...
Рейтинг: 0 / 0
подскажите, куда копать: процедура поиска дублей по опечаткам. DB2 v.8.1
    #37410864
Когда-то делал, что-то похожее:

update elis.espp2 set FIO = replace (FIO,'a','а');
update elis.espp2 set FIO = replace (FIO,'b','б');
update elis.espp2 set FIO = replace (FIO,'v','в');
update elis.espp2 set FIO = replace (FIO,'g','г');
update elis.espp2 set FIO = replace (FIO,'d','д');
update elis.espp2 set FIO = replace (FIO,'e','е');
update elis.espp2 set FIO = replace (FIO,'oh','ё');
update elis.espp2 set FIO = replace (FIO,'zh','ж');
update elis.espp2 set FIO = replace (FIO,'z','з');
update elis.espp2 set FIO = replace (FIO,'i','и');
update elis.espp2 set FIO = replace (FIO,'j','й');
update elis.espp2 set FIO = replace (FIO,'k','к');
update elis.espp2 set FIO = replace (FIO,'l','л');
update elis.espp2 set FIO = replace (FIO,'m','м');
update elis.espp2 set FIO = replace (FIO,'n','н');
update elis.espp2 set FIO = replace (FIO,'o','о');
update elis.espp2 set FIO = replace (FIO,'p','п');
update elis.espp2 set FIO = replace (FIO,'r','р');
update elis.espp2 set FIO = replace (FIO,'s','с');
update elis.espp2 set FIO = replace (FIO,'t','т');
update elis.espp2 set FIO = replace (FIO,'u','у');
update elis.espp2 set FIO = replace (FIO,'f','ф');
update elis.espp2 set FIO = replace (FIO,'x','х');
update elis.espp2 set FIO = replace (FIO,'c','ц');
update elis.espp2 set FIO = replace (FIO,'ch','ч');
update elis.espp2 set FIO = replace (FIO,'sh','ш');
update elis.espp2 set FIO = replace (FIO,'w','щ');
update elis.espp2 set FIO = replace (FIO,'qh','ъ');
update elis.espp2 set FIO = replace (FIO,'y','ы');
update elis.espp2 set FIO = replace (FIO,'q','ь');
update elis.espp2 set FIO = replace (FIO,'eh','э');
update elis.espp2 set FIO = replace (FIO,'ju','ю');
update elis.espp2 set FIO = replace (FIO,'ja','я');


UPDATE elis.espp2 SET FIO = REPLACE (FIO,'A','А');
UPDATE elis.espp2 SET FIO = REPLACE (FIO,'B','Б');
UPDATE elis.espp2 SET FIO = REPLACE (FIO,'V','В');
UPDATE elis.espp2 SET FIO = REPLACE (FIO,'G','Г');
UPDATE elis.espp2 SET FIO = REPLACE (FIO,'D','Д');
UPDATE elis.espp2 SET FIO = REPLACE (FIO,'E','Е');
UPDATE elis.espp2 SET FIO = REPLACE (FIO,'OH','Ё');
UPDATE elis.espp2 SET FIO = REPLACE (FIO,'ZH','Ж');
UPDATE elis.espp2 SET FIO = REPLACE (FIO,'Z','З');
UPDATE elis.espp2 SET FIO = REPLACE (FIO,'I','И');
UPDATE elis.espp2 SET FIO = REPLACE (FIO,'J','Й');
UPDATE elis.espp2 SET FIO = REPLACE (FIO,'K','К');
UPDATE elis.espp2 SET FIO = REPLACE (FIO,'L','Л');
UPDATE elis.espp2 SET FIO = REPLACE (FIO,'M','М');
UPDATE elis.espp2 SET FIO = REPLACE (FIO,'N','Н');
UPDATE elis.espp2 SET FIO = REPLACE (FIO,'O','О');
UPDATE elis.espp2 SET FIO = REPLACE (FIO,'P','П');
UPDATE elis.espp2 SET FIO = REPLACE (FIO,'R','Р');
UPDATE elis.espp2 SET FIO = REPLACE (FIO,'S','С');
UPDATE elis.espp2 SET FIO = REPLACE (FIO,'T','Т');
UPDATE elis.espp2 SET FIO = REPLACE (FIO,'U','У');
UPDATE elis.espp2 SET FIO = REPLACE (FIO,'F','Ф');
UPDATE elis.espp2 SET FIO = REPLACE (FIO,'X','Х');
UPDATE elis.espp2 SET FIO = REPLACE (FIO,'C','Ц');
UPDATE elis.espp2 SET FIO = REPLACE (FIO,'CH','Ч');
UPDATE elis.espp2 SET FIO = REPLACE (FIO,'SH','Ш');
UPDATE elis.espp2 SET FIO = REPLACE (FIO,'W','Щ');
UPDATE elis.espp2 SET FIO = REPLACE (FIO,'QH','Ъ');
UPDATE elis.espp2 SET FIO = REPLACE (FIO,'Y','Ы');
UPDATE elis.espp2 SET FIO = REPLACE (FIO,'Q','Ь');
UPDATE elis.espp2 SET FIO = REPLACE (FIO,'EH','Э');
UPDATE elis.espp2 SET FIO = REPLACE (FIO,'JU','Ю');
UPDATE elis.espp2 SET FIO = REPLACE (FIO,'JA','Я');
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / подскажите, куда копать: процедура поиска дублей по опечаткам. DB2 v.8.1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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