Example: Assignments in dynamic SQL

If you want to use the same statement given in the example: Assignments involving UDTs in dynamic SQL, you can use parameter markers.

The statement is as follows:

     EXEC SQL BEGIN DECLARE SECTION; 
       long id; 
       char name[30]; 
       SQL TYPE IS CLOB(32K) form; 
       char command[80]; 
     EXEC SQL END DECLARE SECTION; 
  
     /* Code to fill host variables */ 
  
     strcpy(command,"INSERT INTO APPLICATIONS VALUES"); 
     strcat(command,"(?, ?, CURRENT DATE, ?)"); 
  
     EXEC SQL PREPARE APP_INSERT FROM :command; 
     EXEC SQL EXECUTE APP_INSERT USING :id, :name, :form;

You made use of DB2's cast specification to tell DB2® that the type of the parameter marker is CLOB(32K), a type that is assignable to the UDT column. Remember that you cannot declare a host variable of a UDT type, since host languages do not support UDTs. Therefore, you cannot specify that the type of a parameter marker is a UDT.

Related reference
Example: Assignments involving UDTs