Thank you. Changing to DYNAMICRULES RUN worked.
I see the same restrictions for the DROP statement in the LUW and zOS manuals:
LUW:
This statement can be embedded in an application program or issued through the use of dynamic SQL statements.
It is an executable statement that can be dynamically prepared only if DYNAMICRULES run behavior is in effect for the package (SQLSTATE 42509).
zOS:
This statement can be embedded in an application program or issued interactively.
It is an executable statement that can be dynamically prepared only if DYNAMICRULES run behavior is implicitly or explicitly specified.
The information in Table 1 looks the same to me:
LUW:
IBM DB2 9.7 for Linux, UNIX and Windows Information Center
zOS:
IBM Information Management Software for z/OS Solutions Information Center
I'm not sure why they were not getting this sqlstate on the mainframe IF using the same DYNAMICRULES (BIND was originally used) option. Do you know?
This is way outside of my area so it was a good learning experience.