Хобрук: Ваш путь к мастерству в программировании

Запрос, чтобы найти все хранимые процедуры, которые использовали курсор или цикл while

Я знаю, как работает переполнение стека, но у меня нет данных или сценариев SQL, чтобы опубликовать свои выводы.

Я много гуглил, но не мог найти то, что ищу.

Возможно ли иметь сценарий SQL, в котором я могу найти список хранимых процедур или функций в моей БД, которые использовали курсор или цикл while, чтобы я мог изменить их на операторы на основе SET?

Кроме того, если возможно, могу ли я узнать, какие хранимые процедуры использовали динамический запрос?

Я не хочу идти и проверять каждую хранимую процедуру вручную, поэтому ищу какой-то автоматизированный подход.

Спасибо!


  • Процедурный код в значительной степени зависит от поставщика, поэтому добавьте тег, чтобы указать, используете ли вы mysql, postgresql, sql-server, oracle или db2, или что-то другое. 02.11.2016
  • Привет! Этот вопрос решен? Вам нужна дополнительная помощь? Пожалуйста, позвольте мне одну подсказку: если этот вопрос решен, было бы очень любезно с вашей стороны поставить галочку напротив счетчика голосов за (лучший) ответ. Это 1) пометит эту проблему как решенную 2) подписчикам будет легче найти лучшее решение 3) заплатит баллы отвечающему и 4) заплатит баллы вам. Поскольку вы сами пересекли границу в 15 баллов, вас дополнительно попросят проголосовать за вклад. Это ТАК-способ сказать спасибо. Удачного кодирования! 07.11.2016

Ответы:


1

Если ваши SP и другие объекты не зашифрованы, вы можете попробовать что-то вроде этого

SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_DEFINITION LIKE '%EXEC%(%' 
                                             OR ROUTINE_DEFINITION LIKE '%WHILE%'
                                             OR ROUTINE_DEFINITION LIKE '%CURSOR%'

Это, конечно, не будет умным в любом случае, но вы можете добавить дополнительные условия, чтобы получить лучшие результаты...

02.11.2016
Новые материалы

Основы принципов S.O.L.I.D, Javascript, Git и NoSQL
каковы принципы S.O.L.I.D? Принципы SOLID призваны помочь разработчикам создавать надежные, удобные в сопровождении приложения. мы видим пять ключевых принципов. Принципы SOLID были разработаны..

Как настроить Selenium в проекте Angular
Угловой | Селен Как настроить Selenium в проекте Angular Держите свое приложение Angular и тесты Selenium в одной рабочей области и запускайте их с помощью Mocha. В этой статье мы..

Аргументы прогрессивного улучшения почти всегда упускают суть
В наши дни в кругах веб-разработчиков много болтают о Progressive Enhancement — PE, но на самом деле почти все аргументы с обеих сторон упускают самую фундаментальную причину, по которой PE..

Введение в Джанго Фреймворк
Схема «работать умно, а не усердно» В этой и последующих статьях я познакомлю вас с тем, что такое фреймворк Django и как создать свое первое приложение с помощью простых и понятных шагов, а..

Настольный ПК как «одно кольцо, чтобы править всеми» домашних компьютеров
Вид после 9 месяцев использования С настольных компьютеров все началось, но в какой-то момент они стали «серверами», и мы все перешли на ноутбуки. В прошлом году я столкнулся с идеей настольных..

Расширенные методы безопасности для VueJS: реализация аутентификации без пароля
Руководство, которое поможет вам создавать безопасные приложения в долгосрочной перспективе Безопасность приложений часто упускается из виду в процессе разработки, потому что основная..

стройный-i18следующий
Представляем стройную оболочку для i18next. Эта библиотека, основанная на i18next, заключает экземпляр i18next в хранилище svelte и отслеживает события i18next, такие как languageChanged,..