With static SQL, host variables used in embedded SQL statements are known at application compile time.
With dynamic SQL, the embedded SQL statements and consequently the host variables are not known until application run time. Therefore, for dynamic SQL applications, you must preprocess the list of host variables that are used in your application.
You can use the DESCRIBE statement to obtain host variable information for any SELECT statement that has been prepared (using PREPARE), and store that information into the SQL descriptor area (SQLDA).
When the DESCRIBE statement gets executed in your application, the database manager defines your host variables in an SQLDA. Once the host variables are defined in the SQLDA, you can use the FETCH statement to assign values to the host variables, using a cursor.