Динамический SQL — категория программного инструментария, в котором обеспечивается возможность конструировать SQL-запросы непосредственно в коде на каком-либо другом языке программирования. Обычно реализуется как расширенный вариант встраиваемого SQL и соответствующая надстройка над компилятором, но может быть встроенным средством языка.

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

Литература править

Ссылки править