SQL

Приведите пример запросов для статического и динамического sql

Это все про программный код, на каком-нибудь 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.
AP
Alexandr Pak
95 629
Лучший ответ
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.