Вопрос знактокам рег. выражений | |
---|---|
alex; Автор Сообщений: 2852 Откуда: Москва Дата регистрации: 23.11.2004 |
есть sql server и сотни хранимых процедур
и нет схемы данных захотелось получить из хранимок табличку связей из запросов типа
ид_связи|таб1|таб2|поле_таб1|поле_таб2 я подумал сначала натравить на хранимки синт. анализатор antlr но интересно можно ли решить эту задачу с пом. регулярных выражений. если знаете ресурс где об этом рассказано или расскажут, порекомендуйте ЗЫ ага вот еще нашел интересностьhabrahabr.ru так кофе, как бэ башка не лопнула Исправлено 3 раз(а). Последнее : alex;, 22.02.17 07:46 |
Re: Вопрос знактокам рег. выражений | |
---|---|
alex; Автор Сообщений: 2852 Откуда: Москва Дата регистрации: 23.11.2004 |
|
Re: Вопрос знактокам рег. выражений | |
---|---|
alex; Автор Сообщений: 2852 Откуда: Москва Дата регистрации: 23.11.2004 |
ха-ха
гугл сдался на 15 странице, а яндекс начал предлагать sql-инъекции |
Re: Вопрос знактокам рег. выражений | |
---|---|
alex; Автор Сообщений: 2852 Откуда: Москва Дата регистрации: 23.11.2004 |
Цитата:Как-то странно |
Re: Вопрос знактокам рег. выражений | |
---|---|
alex; Автор Сообщений: 2852 Откуда: Москва Дата регистрации: 23.11.2004 |
похоже, так или иначе, придется
перечислять ключевые слова SQL как терминатор запроса SQL значит проще поправить грамматику SQL для анализатора |
Re: Вопрос знактокам рег. выражений | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
IMHO максимум что можно поручить "автомату", это найти в каких ХП какие таблицы используются - благо в словаре данных такая инфа должна быть. Далее уже ИИ не справится, да и не всякий "натуральный И" справится ------------------ WBR, Igor Исправлено 1 раз(а). Последнее : Igor Korolyov, 22.02.17 14:11 |
Re: Вопрос знактокам рег. выражений | |
---|---|
S-type Сообщений: 2969 Дата регистрации: 24.04.2004 |
Ну, если ИИ в шахматы человека обыграл - может и тут справится... |
Re: Вопрос знактокам рег. выражений | |
---|---|
S-type Сообщений: 2969 Дата регистрации: 24.04.2004 |
Похоже, кто то в начале длинного и увлекательного пути. |
Re: Вопрос знактокам рег. выражений | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Не, ну на самом то деле он справится - оптимизатор СУБД разберёт конструкцию и составит какой-то "хитрый план" её исполнения Правда в нём, скорее всего, не будет в явном виде фигурировать "логическая связанность таблиц по таким-то полям". Тем более что для приведенного примера такого рода "связь" мне лично видится как раз таки "нелогической" Но оно сплошь и рядом встречается в реальном коде - те же сцепки по комбинациям полей год/месяц - когда с равенством, когда со сравнением на >...
Ну не могу я сказать что приход, расход и остатки логически связаны "по году и месяцу" - хотя в коде обработки оно так наверняка будет прописано! Если в БД в принципе нет констрейнов ссылочной целостности, плюс гениальные 3-4 буквенные имена-аббревиатуры на русско-английском языке, то автору можно лишь посочувствовать - его действительно "послали" далеко и надолго ------------------ WBR, Igor |
Re: Вопрос знактокам рег. выражений | |
---|---|
alex; Автор Сообщений: 2852 Откуда: Москва Дата регистрации: 23.11.2004 |
Игорь, приветствую.
Не все так плохо. Контроль целостности оставим пока за кадром. Ты прав процедуры скомпилированы соответственно варианты неоднозначности отсечены я про твой пример. Работа современного анализатора - это разбор входного потока символов или токенов, по имеющейся грамматике. В ходе его работы происходят какие-то события в т.ч. и исключения. Немного изменить обработку событий и все. Я считаю задачка интересная, т.е. ее можно применить к реальным вещам. Как-то так. Цитата: Это очевидно. Мне интересна сама задача так как я ее сформулировал. Ни больше, ни меньше. Остальное что ты упомянул не мое, построение схем дело архитекторов и аналитиков. Исправлено 1 раз(а). Последнее : alex;, 22.02.17 18:26 |
Re: Вопрос знактокам рег. выражений | |
---|---|
alex; Автор Сообщений: 2852 Откуда: Москва Дата регистрации: 23.11.2004 |
Учитывая, что жисть - это смертельно опасный и зачастую болезненный трюк, - ваще насрать. |
Re: Вопрос знактокам рег. выражений | |
---|---|
S-type Сообщений: 2969 Дата регистрации: 24.04.2004 |
Немножко разовью мою мысль.
Захотел получить таблицу связей не для того, что бы просто на неё посмотреть. Собственно, табличка связей - это только первый шаг. Наверняка - надо что то доделать/переделать... |
Re: Вопрос знактокам рег. выражений | |
---|---|
S-type Сообщений: 2969 Дата регистрации: 24.04.2004 |
По поводу "как построить таблицу связей" можно раскинуться мыслью по древу... В институте был курс по лексическим анализаторам и компиляторам. Как сейчас помню аббревиатуры НКА, ДКА... Если посмотреть на сайте Oracl-а синтаксис команды select docs.oracle.com можно увидеть кучу стрелочек, квадратиков и кружочков - это нарисованный конечный автомат (КА). Правда, он нарисован по частям, и ещё надо собрать его в общую кучу. Предположим, собрали. При этом есть "точка входа", из этой точки выходят стрелки, у каждой стрелки подпись. В двух слова - алгоритм таков. Хранимая процедура - это некая последовательность лексем. Становимся на "точку входа", берём по очереди по одной лексеме и сравниваем с ветками, которые выходят из точки. Совпало - переходим в новую точку, берём следующую лексему и сравниваем... Если в итоге все лексемы кончились - значит, разобрали успешно. Если лексема есть, а соответствующая стрелочка отсутствует - либо ошибка в КА (и его надо дорисовать/перерисовать). Либо, ты где то ошибся. Потом то же самое надо реализовать "в коде". По ходу разора лексем будет заполняться таблица связей. Как то так.
|
Re: Вопрос знактокам рег. выражений | |
---|---|
S-type Сообщений: 2969 Дата регистрации: 24.04.2004 |
Можно ли обойтись только регулярными выражениями? Не уверен. Наверное, всё таки можно. Но, нужно ли? Как показывает практика - если тебе надо в "большой куче" найти что то, то - регулярка очень поможет. А если надо что то проанализировать - долго будешь регулярку отлаживать. К тому же, через год и не вспомнишь, как она работает.
|
Re: Вопрос знактокам рег. выражений | |
---|---|
alex; Автор Сообщений: 2852 Откуда: Москва Дата регистрации: 23.11.2004 |
Сергей, спасибо, за ответы.
Блин, сейчас не буду их читать. Просто мозги не получается выключить. --небольшое отступление --мне за 40 --глобальная задача №1 --изменить мир к лучшему --глобальная задача №2 --не позволить никому мешать пункту №1 --глобальная задача №3 --поскольку гормональные проблемы какбэ уже не так важны --увеличивать объем и ускорять восприятие полученной информации --и продолжать давить всех вокруг своим интелектом --эт поскольку все вокруг мешают пункту №1 --и действительно политика присутствует в нашей жизни в какой-то мере --моя политика - моя жизнь мои правила --не стыкуется с политикой других --шутка я извиняюсь, честно отпишусь по-возможности |
Re: Вопрос знактокам рег. выражений | |
---|---|
PaulWist Сообщений: 14616 Дата регистрации: 01.04.2004 |
Ни разу не видел автоматом сгенеренные бизнес правила, всегда видел кастомные метаданные описывающие бизнес логику, причем с кучей комментов, типа "тут играем, тут не играем, а тут рыбу заворачивали"
Поэтому, скорее всего придется брать "карандаш" и расписывать схему данных "руками" ------------------ Есть многое на свете, друг Горацио... Что и не снилось нашим мудрецам. (В.Шекспир Гамлет) |
Re: Вопрос знактокам рег. выражений | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
А, ну если "практическое использование" не интересует, тогда да, вопросы отпадают
Но я бы тоже не стал это делать регулярками (в смысле ВСЮ задачу). Тут Сергей совершенно прав - регулярки лишь небольшая часть разбора синтаксической конструкции - потом уже она "не катит". И да, разбирать придётся ВСЁ, не только "связи в ON и WHERE". Естественно разобрать логическую связь которая проходит через другую ХП (такое бывает) не выйдет в любом случае, т.к. все "выходы вовне" будут по сути чёрными ящиками. ------------------ WBR, Igor |
Re: Вопрос знактокам рег. выражений | |
---|---|
alex; Автор Сообщений: 2852 Откуда: Москва Дата регистрации: 23.11.2004 |
Ребят,
реально что хочется сделать вот groups.google.com habrahabr.ru а остальное так игры разума не, сегодня отдыхаю |
Re: Вопрос знактокам рег. выражений | |
---|---|
alex; Автор Сообщений: 2852 Откуда: Москва Дата регистрации: 23.11.2004 |
просто, на тек. момент
у меня в избранном вот [attachment 27093 ] PS не до netbeans Исправлено 1 раз(а). Последнее : alex;, 23.02.17 22:59 |
Re: Вопрос знактокам рег. выражений | |
---|---|
alex; Автор Сообщений: 2852 Откуда: Москва Дата регистрации: 23.11.2004 |
Всем, спасибо.
Использую antlr. Если кому интересно... эта штука генерит лексеры и парсеры на разных языках, по-умолчанию java. habrahabr.ru www.youtube.com сборка самого antlr
генерация парсеров c:\dev\antlr4\grammars-v4-master\tsql\gen_java.cmd
добавляем в tsql.g4:
c:\dev\antlr4\grammars-v4-master\tsql\gen_csharp.cmd
собрать c:\dev\antlr4\runtime\CSharp\runtime\CSharp\Antlr4.vs2013.sln создать проект и добавить в него ссылку c:\dev\antlr4\runtime\CSharp\runtime\CSharp\Antlr4.Runtime\bin\net35\Release\Antlr4.Runtime.dll ну дальше, поправить код парсеров... Исправлено 1 раз(а). Последнее : alex;, 02.03.17 21:10 |
© 2000-2024 Fox Club  |