Question & Answer
Question
DB2 10 for z/OS reports 'undefined' synonym name when using ADB2GEN to define WDI V3.3.0 DB2 objects. Error message ADB5044I *** INPUT STATEMENT: CREATE VIEW EDIENU33.EDIVMRNA1(REQID, DIREC, MEASID, MEASDATE, ENVCOUNT, BYTECNT) AS SELECT EDIENU33.MRCM.REQID, EDIENU33.MRCM.DIREC, EDIENU33.MRCM.MEASID, EDIENU33.MRCM.MEASDATE, EDIENU33.MRCM.ENVCOUNT, EDIENU33.MRCM.BYTECNT FROM EDIENU33.MRCM WHERE EDIENU33.MRCM.MEASID = GRAPHIC('DACM') ; DSNT408I SQLCODE = -204, ERROR: EDIENU33.MRCM IS AN UNDEFINED NAME DSNT418I SQLSTATE = 42704 SQLSTATE RETURN CODE DSNT415I SQLERRP = DSNXOTL SQL PROCEDURE DETECTING ERROR DSNT416I SQLERRD = -500 0 0 -1 0 0 SQL DIAGNOSTIC INFORMATION DSNT416I SQLERRD = X'FFFFFE0C' X'00000000' X'00000000' X'FFFFFFFF' X'00000000' X'00000000' SQL DIAGNOSTIC INFORMATION
Cause
There is an apparent incompatibility with VIEW creation via DB2 utility, "ADB2GEN - EXTRACT OBJECT DEFINITIONS FROM THE DB2 CATALOG TABLES" This may affect WDI installations that use this DB2 utility.
Answer
The provided product DDL is working fine, as per the WDI V3.3 for z/OS Installation Guide 'EDI.V3R3M0.SEDISQL1(EDISDB2)'. For example:
CREATE VIEW EDIENU33.EDIVMRNA1
(REQID,
DIREC,
MEASID,
MEASDATE,
ENVCOUNT,
BYTECNT)
AS SELECT
REQID,
DIREC,
MEASID,
MEASDATE,
ENVCOUNT,
BYTECNT
FROM MRCM
WHERE MEASID = GRAPHIC('DACM');
However, DDL as generated by ADB2GEN encounters SQLCODE204. For example:
CREATE VIEW EDIENU33.EDIVMRNA1(REQID, DIREC, MEASID, MEASDATE,
ENVCOUNT, BYTECNT) AS
SELECT EDIENU33.MRCM.REQID, EDIENU33.MRCM.DIREC,
EDIENU33.MRCM.MEASID, EDIENU33.MRCM.MEASDATE,
EDIENU33.MRCM.ENVCOUNT, EDIENU33.MRCM.BYTECNT
FROM EDIENU33.MRCM
WHERE EDIENU33.MRCM.MEASID = GRAPHIC('DACM') ;
---------+---------+---------+---------+---------+---------+---------+--
DSNT408I SQLCODE = -204, ERROR: EDIENU33.MRCM IS AN UNDEFINED NAME
DSNT418I SQLSTATE = 42704 SQLSTATE RETURN CODE
By comparing the two different DDL's above, the issue was attributed to the high-level-qualifier specification on "FROM EDIENU33.MRCM". In other words, change the ADB2GEN generated DDL to "FROM MRCM", i.e. removing the high-level-qualifier from the synonym reference within the create view statements. This will need to be done for all 14 CREATE VIEW statements that reference synonyms:
CREATE VIEW EDIENU33.EDIVTSIS
CREATE VIEW EDIENU33.EDIVDSEXTR
CREATE VIEW EDIENU33.EDIVMRTI1
CREATE VIEW EDIENU33.EDIVMRTI2
CREATE VIEW EDIENU33.EDIVMRTI3
CREATE VIEW EDIENU33.EDIVMRTC1
CREATE VIEW EDIENU33.EDIVMRTC2
CREATE VIEW EDIENU33.EDIVMRTC3
CREATE VIEW EDIENU33.EDIVMRTC4
CREATE VIEW EDIENU33.EDIVMRTA1
CREATE VIEW EDIENU33.EDIVMRTA2
CREATE VIEW EDIENU33.EDIVMRTA3
CREATE VIEW EDIENU33.EDIVMRTA4
CREATE VIEW EDIENU33.EDIVMRNA1
Was this topic helpful?
Document Information
Modified date:
01 August 2018
UID
swg21671383