Это все про программный код, на каком-нибудь PL/SQL или его аналоге в твоей СУБД. Я приведу пример для Оракла:
SELECT COUNT(*) INTO CNT FROM DUAL; --Статика
EXECUTE IMMEDIATE 'SELECT COUNT(*) FROM DUAL' INTO CNT; --Динамика
В первом случае запрос компилируется в код твоей процедуры. Во втором будет запущен отдельный парсер, который скомпилирует запрос во время выполнения. Более того, во втором случае ты можешь этот запрос формировать динамически, например:
SELECT TABLE_NAME INTO SOME_TABLE FROM USER_TABLES WHERE ROWNUM=1 ORDER BY 1;
EXECUTE IMMEDIATE 'SELECT COUNT(*) FROM '||SOME_TABLE INTO CNT;
Таким образом ты получишь количество записей в некоторой первой по алфавиту таблице из списка USER_TABLES, а не из DUAL.
SQL
Приведите пример запросов для статического и динамического sql
Анатолий Горшков
Спасибо
Static (Embedded) SQLDynamic (Interactive) SQL
In Static SQL, how database will be accessed is predetermined in the embedded SQL statement.In Dynamic SQL, how database will be accessed is determined at run time.
It is more swift and efficient.It is less swift and efficient.
SQL statements are compiled at compile time.SQL statements are compiled at run time.
Parsing, Validation, Optimization and Generation of application plan are done at compile time.Parsing, Validation, Optimization and Generation of application plan are done at run time.
It is generally used for situations where data is distributed uniformly.It is generally used for situations where data is distributed non uniformly.
EXECUTE IMMEDIATE, EXECUTE and PREPARE statements are not used.EXECUTE IMMEDIATE, EXECUTE and PREPARE statements are used.
It is less flexible.It is more flexible.
In Static SQL, how database will be accessed is predetermined in the embedded SQL statement.In Dynamic SQL, how database will be accessed is determined at run time.
It is more swift and efficient.It is less swift and efficient.
SQL statements are compiled at compile time.SQL statements are compiled at run time.
Parsing, Validation, Optimization and Generation of application plan are done at compile time.Parsing, Validation, Optimization and Generation of application plan are done at run time.
It is generally used for situations where data is distributed uniformly.It is generally used for situations where data is distributed non uniformly.
EXECUTE IMMEDIATE, EXECUTE and PREPARE statements are not used.EXECUTE IMMEDIATE, EXECUTE and PREPARE statements are used.
It is less flexible.It is more flexible.
Похожие вопросы
- Приведите примеры удачного использования драйверов БД во фреймворках, более высокоуровневых, чем SQL.
- Помогите написать sql запросы
- Не очень понятен синтаксис запросов SQL
- SQL-запрос Вывести идентификаторы всех владельцев комнат
- SQL запрос Найдите какой процент пользователей, зарегистрированных на сервисе бронирования
- Можно ли в SQL запросе опустить слово AS? Пример:
- Sql запрос создания таблицы
- SQL. Выводятся не все данные. 4 задача.
- Написать запрос sql
- SQL запрос (like)