如果使用 COPY 语句而不是 INCLUDE 给出 DCLGEN,结果会怎样?
INCLUDE和COPY语句的主要区别在于,带有INCLUDE语句的PDS成员在预编译期间进行了扩展,而带有COPY语句的PDS成员在编译过程中进行了扩展。
由于DCLGEN成员包含表(表结构)的列名,因此需要在预编译期间对其进行扩展。这是因为在预编译时,所有SQL语句都经过验证,放置在DBRM中,最后由适当的COBOL调用替换。
如果给DCLGEN成员提供COPY语句而不是INCLUDE语句,那么在预编译期间将导致DB2警告,因为预编译器将无法验证COBOL-DB2程序中的SQL语句。