Динамический SQL — категория программного инструментария, в котором обеспечивается возможность конструировать SQL-запросы непосредственно в коде на каком-либо другом языке программирования. Обычно реализуется как расширенный вариант встраиваемого SQL и соответствующая надстройка над компилятором, но может быть встроенным средством языка.
В Firebird динамический SQL (DSQL) — надмножество встраиваемого SQL (ESQL), обрабатываемое препроцессором gpre. В Oracle Database динамические средства встроены в PL/SQL, таким образом, непосредственно в программе на PL/SQL возможно сконструировать произвольную строку (то есть параметризовать не только переменные в предикатах, но и имена таблиц, столбцов и даже собственно языковые конструкции) и передать её СУБД в качестве запроса (конструкция EXECUTE IMMEDIATE
). Схожие возможности встроены в T-SQL для Microsoft SQL Server. Такой подход обеспечивает, с одной стороны, максимальную гибкость в конструировании запросов, с другой стороны — усложняет ясность и отладку программ, поэтому динамический SQL используется в основном для вспомогательных и обслуживающих задач (например, требующих выполнить одинаковые операции над каким-либо большим подмножеством объектов базы, выбираемых из словаря данных по какому-либо критерию).
Литература
Ссылки
| Пожалуйста, дополните её ещё хотя бы несколькими предложениями и уберите это сообщение. Если статья останется недописанной, она может быть выставлена к удалению. Для указания на продолжающуюся работу над статьёй используйте шаблон {{subst:Редактирую}}. Администраторам и подводящим итоги: эта пометка оставлена 2009-03-18. Просьба очень короткие заготовки статей ранее чем через два дня после создания не удалять. (18 марта 2009) |