Dynamic SQL lets programs accept or generate SQL statements at run time, in contrast to precompiled statements that must be embedded in the program before it is compiled. Unlike embedded statements, such dynamically executed SQL statements are not part of any source code but are created while the program is running. Dynamic SQL is useful when you cannot predict the type of SQL statement your program needs to process. To handle dynamically executed SQL statements, programs use embedded PREPARE statements to assign a name to the SQL statement created at run time and to prepare it for execution. The EXECUTE, dynamic DECLARE CURSOR, and DESCRIBE statements refer to that assigned name. You cannot qualify prepared statement names. Because they are prepared with embedded PREPARE statements, you can refer to dynamic statement names from programs only, not from interactive SQL.