Why am I getting a -812 on my Easytrieve compile?

Document ID : KB000015289
Last Modified Date : 14/02/2018
Show Technical Document Details
Introduction:

Upgrading to DB2v10 doing a Bind Plan

Question:

Why am I getting a -812 recompiling an Easytrieve program that has SQL code?

Environment:
DB2v10, doing a Bind Package, and a Bind Plan.
Answer:

The Bind syntax for the PLAN that results in the SQLCODE -812 is:
BIND PLAN(DOETPC1) PKLIST(*.DONOCOL) -
DEGREE(1) VALIDATE(BIND) ISOLATION(CS) -
FLAG(E) CURRENTDATA(NO) RELEASE(COMMIT) -
RETAIN CACHESIZE(0) ACQUIRE(USE) -
EXPLAIN(NO) ACTION(REPLACE)

The Bind syntax for the PLAN that results in clean run is:
BIND PLAN(DOETPC1) PKLIST(*.DONOCOL.*) -
DEGREE(1) VALIDATE(BIND) ISOLATION(CS) -
FLAG(E) CURRENTDATA(NO) RELEASE(COMMIT) -
RETAIN CACHESIZE(0) ACQUIRE(USE) -
EXPLAIN(NO) ACTION(REPLACE)

Additional Information:

The difference is very slight - PKLIST(*.collid) results in SQL -812 Execution. PKLIST(*.collid.*) results in clean run.

What a difference an additional '*' makes!