Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.12.2009, 21:46   #1
xaoxao
Новичок
Джуниор
 
Регистрация: 21.12.2009
Сообщений: 1
По умолчанию вопрос по pl sql

всем здравствуйте. только что зарегилась. поэтому, если что не так, прошу прощения. все замечания учту в будущем

значит было

select *
from test_mas2
where name=regexp_replace (UPPER(name), '0', 'О') and name=regexp_replace (UPPER(name), 'O', 'О') and name=regexp_replace (UPPER(name), '3', 'З')
and name=regexp_replace (UPPER(name), 'A', 'А') and doc_ser=regexp_replace(UPPER(doc_se r),'O','0') and doc_ser=regexp_replace(UPPER(doc_se r),'О','0')
and regexp_like (UPPER(name),'^(ЗАО|ООО|ОАО|КПП|ЗАК РЫТОЕ АКЦИОНЕРНОЕ ОБЩЕСТВО|ФИЛИАЛ|ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ|ОТКРЫТОЕ АКЦИОНЕРНОЕ ОБЩЕСТВО)')
and not regexp_like(name, '^"[.](A-Za-z)#\s|^"[.](A-Za-z)#\.') and regexp_like (inn,'^\d{9}$') and regexp_like (doc_ser,'^(\d)$') and not regexp_like (doc_ser,'^0$') or regexp_like(name,'^"\s*') or regexp_like(name, '^[(А-Я){3,}]+\s')


поступили замечания
1. Привести к одному регистру
2. Убрать мусор (лишние пробелы, знаки препинания)
3. Реквизиты указанные в название перенести на свое место (например если поле ИНН пустое, а он есть в наименовании то стоит его вернуть на свое место)
4. Унифицировать «стоп» слова. Т.е. все стандартные слова привести к одинаковому написанию. Для юридических лиц – организационно-правовые формы, для адресов слова «улица», «дом» и т.д.
5. Проверить каждое поле на соответствие эталонному шаблону, если не подходит – попробовать исправить по возможности
6. Проверить логическую взаимоcвязку реквизитов между собой.


вот что попробовали сделать

declare
v_TestString varchar2(255)
v_testchar varchar2(255);
v_INN varchar(255);
cursor cur_DataRecords is
select id, name, INN, OGRN FROM test_mas3;
begin
dbms_output.enable;
sfor v_TestString in cur_DataRecord loop
v_testchar:=regexp_substr(v_TestStr ing,'.*\".*');
dbms_output.put_line(v_testchar);
if v_testchar!=' ' THEN
v_testchar:=regexp_replace(v_testch ar,'"{1,}','' );
end if;
v_testchar:=regexp_substr(v_TestStr ing,'.*ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ.*');
dbms_output.put_line(v_testchar);
if v_testchar!=' ' THEN
v_testchar:=regexp_replace(v_testch ar,'ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ','ООО' );
end if;
v_testchar:=regexp_substr(v_testcha r,'.*(\d){9,11}.*');
dbms_output.put_line(v_testchar);
if v_testchar!=' ' THEN
v_INN:=regexp_substr(v_testchar,'(\ d){9,11}');
v_testchar:=regexp_replace(v_testch ar,v_INN,'' );
end if;
dbms_output.put_line(v_testchar);
v_testchar:=regexp_substr(v_testcha r,'^\s');
dbms_output.put_line(v_testchar);
if v_testchar!=' ' THEN
v_testchar:=regexp_replace(v_testch ar,'^\s','' );
end if;
dbms_output.put_line(v_testchar);
v_testchar:=regexp_substr(v_TestStr ing,'.*ЗАКРЫТОЕ АКЦИОНЕРНОЕ ОБЩЕСТВО.*');
dbms_output.put_line(v_testchar);
if v_testchar!=' ' THEN
v_testchar:=regexp_replace(v_testch ar,'ЗАКРЫТОЕ АКЦИОНЕРНОЕ ОБЩЕСТВО','ЗАО' );
end if;
end loop;
end;

сдаётся мне, что что-то тут не всё.
нужно адекватное мнение: имеет ли это смысл?
можете указать на какие-то ошибки?
еще я там мельком видела про платные услуги: это куда обращаться, если что?)))
ну и как обычно, горю, помогите))
xaoxao вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вопрос по SQL wadzik БД в Delphi 5 19.08.2009 12:47
Вопрос по SQL ]Wowan[ БД в Delphi 0 18.03.2009 10:49
вопрос по SQL запросу Anton_S БД в Delphi 5 09.06.2008 01:47
Вопрос по SQL Taras БД в Delphi 9 16.01.2008 12:45
Еще один вопрос с SQL-ом фЁдОр БД в Delphi 27 22.10.2007 12:42