Previous Topic: IDCM2PAR51 - Qualification of DVW SQL table/view name by AUTHID AUTHID qualifier is not allowedNext Topic: Data Entity (DE) Messages


IDCM2PAR90 - DB2 predicate beginning "expression" does not include a column reference

Reason:

A predicate in a CA Ideal program includes only host-variables, literals, or database columns (for the DB2 query or subquery that CA Ideal generates) outside the dataview being accessed. In a FOR construct, this is usually a condition in a WHERE clause. In a DB2 SQL statement, this is usually a condition in a WHERE or HAVING clause.

The predicate does not in any way involve conditions that would restrict access to the dataview (or results table) in the (sub)query based on its contents. Such a predicate is irrelevant to the DB2 access that are performed at RUN-time. It is more efficient to have CA Ideal resolve logical conditions that involve only objects outside of the dataview, externally to the EXEC SQL or FOR construct where the predicate was detected. Such predicates can lead to DB2 run-time errors.

Action:

Review the predicate and rephrase the program structure to restrict access in DB2 based only on the contents of the dataview or subquery results-table columns. Never base access-restrictions for a DB2 query or subquery on conditions external to the dataview being accessed. Instead, you can achieve the same result outside the FOR-construct or SQL-request through constructs that control program flow (for example, IF or SELECT).