| Oracle Procedural Gateway® for APPC User's Guide 10g Release 2 (10.2) for Microsoft Windows (32-Bit) Part Number B16212-01 |
|
|
View PDF |
Use the following sample input statements and report output for the Procedural Gateway Administration Utility to guide you in designing your own PGAU statements.
This appendix contains these sample PGAU statements:
DEFINE DATA EMPNO
PLSDNAME (EMPNO)
USAGE (PASS)
LANGUAGE (IBMVSCOBOLII)
(
01 EMP-NO PIC X(6).
);
DEFINE DATA EMPREC
PLSDNAME (DCLEMP)
USAGE (PASS)
LANGUAGE (IBMVSCOBOLII)
INFILE("emp.cob");
where the file emp.cob contains the following:
01 DCLEMP.
10 EMPNO PIC X(6).
10 FIRSTNME.
49 FIRSTNME-LEN PIC S9(4) USAGE COMP.
49 FIRSTNME-TEXT PIC X(12).
10 MIDINIT PIC X(1).
10 LASTNAME.
49 LASTNAME-LEN PIC S9(4) USAGE COMP.
49 LASTNAME-TEXT PIC X(15).
10 WORKDEPT PIC X(3).
10 PHONENO PIC X(4).
10 HIREDATE PIC X(10).
10 JOB PIC X(8).
10 EDLEVEL PIC S9(4) USAGE COMP.
10 SEX PIC X(1)
10 BIRTHDATE PIC X(10).
10 SALARY PIC S9999999V99 USAGE COMP-3.
10 BONUS PIC S9999999V99 USAGE COMP-3.
10 COMM PIC S9999999V99 USAGE COMP-3.
DEFINE DATA DB2INFO
PLSDNAME (DB2)
USAGE (PASS)
LANGUAGE (IBMVSCOBOLII)
INFILE("db2.cob");
where the file db2.cob contains the following:
01 DB2.
05 SQLCODE PIC S9(9) COMP-4.
05 SQLERRM.
49 SQLERRML PIC S9(4) COMP-4.
49 SQLERRT PIC X(70).
05 DSNERRM.
49 DSNERRML PIC S9(4) COMP-4.
49 DSNERRMT PIC X(240) OCCURS 8 TIMES
INDEXED BY ERROR-INDEX
DEFINE CALL DB2IMAIN
PKGCALL (PGADB2I_MAIN)
PARMS ( (EMPNO IN ),
(EMPREC OUT) );
DEFINE CALL DB2IDIAG
PKGCALL (PGADB2I_DIAG)
PARMS ( (DB2INFO OUT) );
DEFINE TRANSACTION DB2I
CALL ( DB2IMAIN,
DB2IDIAG )
SIDEPROFILE(CICSPROD)
TPNAME(DB2I)
LOGMODE(ORAPLU62)
SYNCLEVEL(0)
NLS_LANGUAGE("AMERICAN_AMERICA.WE8EBCDIC37C");
GENERATE DB2I
PKGNAME(PGADB2I)
OUTFILE("pgadb2i");
A user's high-level application now uses this TIP by referencing these PL/SQL datatypes passed and returned.
Table G-1 provides a description of the TIP user transaction datatypes in package name PGADB2I:
Table G-1 TIP User Transaction Datatypes Used in Package Name PGADB2I
| Datatype | Description |
|---|---|
|
|
is a PL/SQL variable corresponding to COBOL EMPNO. |
|
|
Which is a PL/SQL RECORD corresponding to COBOL DCLEMP. |
|
|
Which is a PL/SQL RECORD corresponding to COBOL DB2INFO. |
and the application calls:
PGADB2I.PGADB2I_INIT(trannum); PGADB2I.PGADB2I_MAIN( trannum, empno, emprec ); PGADB2I.PGADB2I_DIAG( trannum, db2 ); PGADB2I.PGADB2I_TERM(trannum, termtype);
The examples are sample definitions of DATA, CALL, and TRANSACTION entries with implicit versioning.
This example creates a new DATA version of 'EMPREC' because 'EMPREC' DATA was defined previously:
DEFINE DATA EMPREC
PLSDNAME (NEWEMP)
USAGE (PASS)
LANGUAGE (IBMVSCOBOLII)
INFILE("emp2.cob");
where the file emp2.cob contains the following:
01 NEWEMP.
10 EMPNO PIC X(6).
10 FIRSTNME.
49 FIRSTNME-LEN PIC S9(4) USAGE COMP.
49 FIRSTNME-TEXT PIC X(12).
10 MIDINIT PIC X(1).
10 LASTNAME.
49 LASTNAME-LEN PIC S9(4) USAGE COMP.
49 LASTNAME-TEXT PIC X(15).
10 WORKDEPT PIC X(3).
10 PHONENO PIC X(3).
10 HIREDATE PIC X(10).
10 JOB PIC X(8).
10 EDLEVEL PIC S9(4) USAGE COMP.
10 SEX PIC X(1).
10 BIRTHDATE PIC X(10).
10 SALARY PIC S9999999V99 USAGE COMP-3.
10 BONUS PIC S9999999V99 USAGE COMP-3.
10 COMM PIC S9999999V99 USAGE COMP-3.
10 YTD.
15 SAL PIC S9(9)V99 USAGE COMP-3.
15 BON PIC S9(9)V99 USAGE COMP-3.
15 COM PIC S9(9)V99 USAGE COMP-3.
To determine which DATA version number was assigned, this SQL query can be issued:
SELECT MAX(pd.version)
FROM pga_data pd
WHERE pd.dname = 'EMPREC';
To determine additional information related to the updated version of 'EMPREC' this query can be used:
SELECT *
FROM pga_data pd
WHERE pd.dname = 'EMPREC';
This example creates a new CALL version of 'DB2IMAIN' because the 'DB2IMAIN' CALL was defined previously:
DEFINE CALL DB2IMAIN
PKGCALL (PGADB2I_MAIN)
PARMS ( (EMPNO IN ),
(EMPREC OUT VERSION(ddddd) ) );
where ddddd is the version number of the EMPREC DATA definition queried after the previous DEFINE DATA updated EMPREC.
To determine which call version number was assigned, this SQL query can be issued:
SELECT MAX(pc.version)
FROM pga_call pc
WHERE pc.cname = 'DB2IMAIN';
To determine additional information related to the updated version of 'DB2IMAIN' this query can be used:
SELECT *
FROM pga_call pc
WHERE pc.cname = 'DB2IMAIN';
The DEFINE TRANSACTION example creates a new TRANSACTION version of 'DB2I' because the 'DB2I' TRANSACTION was defined previously. The essential difference of the new version of the DB2I transaction is that the first call uses a new PL/SQL record format "NEWEMP" (which corresponds to the COBOL NEWEMP format) to query the employee data.
|
Caution: Record format changes like that discussed above must be synchronized with the requirements of the remote transaction program. Changes to the PGA TIP alone result in errors. A new remote transaction program with the corequisite changes could be running on a separate CICS system and started through the change from "CICSPROD" to "CICSTEST" in the SIDEPROFILE parameter below. |
DEFINE TRANSACTION DB2I
CALL ( DB2IMAIN VERSION (ccccc),
DB2IDIAG )
SIDEPROFILE(CICSTEST)
TPNAME(DB2I)
LOGMODE(ORAPLU62)
SYNCLEVEL(0)
NLS_LANGUAGE("AMERICAN_AMERICA.WE8EBCDIC37C");
where ccccc is the version number of the DB2IMAIN CALL definition queried after the previous DEFINE CALL updated DB2IMAIN.
There are two versions of the DB2I transaction definition in the PGA DD. The original uses the old "DCLEMP" record format and starts transaction "DB2I" on the production CICS system. The latest uses the "NEWEMP" record format and starts transaction "DB2I" on the test CICS system.
To determine which transaction version number was assigned, this SQL query can be issued:
SELECT MAX(pt.version) FROM pga_trans pt WHERE pt.tname = 'DB2I';
To determine additional information related to the updated version of 'DB2I' this query can be used:
SELECT * FROM pga_trans pt WHERE pt.tname = 'DB2I';
This example generates a new package using the previously defined new versions of the TRANSACTION, CALL, and DATA definitions:
GENERATE DB2I
VERSION(ttttt)
PKGNAME(NEWDB2I)
OUTFILE("pgadb2i");
where ttttt is the version number of the DB2I TRANSACTION definition queried after the previous DEFINE TRANSACTION updated DB2I.
Note that the previous PL/SQL package files pgadb2i.pkh and pgadb2i.pkb are overwritten. To keep the new package separate, change the output file specification. For example:
GENERATE DB2I
VERSION(ttttt)
PKGNAME(NEWDB2I)
OUTFILE("newdb2i");
A user's high-level application now uses this TIP by referencing the PL/SQL datatypes passed and returned.
Table G-2 provides a description of the TIP user transaction datatypes in package name NEWDB2I:
Table G-2 TIP User Transaction Datatypes for Package Name NEWDB2I
| Datatype | Description |
|---|---|
|
|
Is a PL/SQL variable corresponding to COBOL EMPNO. |
|
|
Is a PL/SQL RECORD corresponding to COBOL NEWEMP. |
|
|
Is a PL/SQL RECORD corresponding to COBOL DB2. |
and the application calls:
NEWDB2I.PGADB2I_INIT(trannum); NEWDB2I.PGADB2I_MAIN( trannum, empno, newemp ); NEWDB2I.PGADB2I_DIAG( trannum, db2 ); NEWDB2I.PGADB2I_TERM(trannum, termtype);
Single-field redefinition in which EDLEVEL USAGE becomes COMP-3:
REDEFINE DATA EMPREC
PLSDNAME(DCLEMP)
LANGUAGE(IBMVSCOBOLII)
FIELD(EDLEVEL)
PLSFNAME(PLSRECTYPE)
(
10 EDLEVEL PIC S9(4) USAGE IS COMP-3.
);
By default, this redefines the latest version of EMPREC which implicitly affects the latest call and transaction definitions which refer to it.
Sample multi-field redefinition in which the employee's first and last name fields are expanded and the employee's middle initial is removed.
REDEFINE DATA EMPREC
VERSION(1)
PLSDNAME(DCLEMP)
LANGUAGE(IBMVSCOBOLII)
INFILE("emp1.cob");
where the file emp1.cob contains the following:
01 DCLEMP.
10 EMPNO PIC X(6).
10 FIRSTNME.
49 FIRSTNME-LEN PIC S9(4) USAGE COMP.
49 FIRSTNME-TEXT PIC X(15).
10 LASTNAME.
49 LASTNAME-LEN PIC S9(4) USAGE COMP.
49 LASTNAME-TEXT PIC X(20).
10 WORKDEPT PIC X(3).
10 PHONENO PIC X(4).
10 HIREDATE PIC X(10).
10 JOB PIC X(8).
10 EDLEVEL PIC S9(4) USAGE COMP.
10 SEX PIC X(1).
10 BIRTHDATE PIC X(10).
10 SALARY PIC S9999999V99 USAGE COMP-3.
10 BONUS PIC S9999999V99 USAGE COMP-3.
10 COMM PIC S9999999V99 USAGE COMP-3.
The assumption is that version 1 of the data definition for 'EMPREC' is to be redefined. This causes a redefinition of the first 'EMPREC' sample data definition without changing the version number. Thus, existing call and transaction definitions which referenced version 1 of 'EMPREC' automatically reflect the changed 'EMPREC'. This change becomes effective when a TIP is next generated for a transaction that references the call which referenced version 1 of 'EMPREC'.
This implicitly affects both versions of the transaction because both refer to EMPREC in the second call to update the employee data.
These samples illustrate the deletion of a specific version of a definition which has multiple versions, followed by deletion of all versions of a specific named definition.
Deletion of DATA Definitions:
UNDEFINE DATA EMPREC VERSION (ddddd); UNDEFINE DATA EMPREC VERSION (ALL); UNDEFINE CALL DB2IMAIN VERSION (ccccc); UNDEFINE CALL DB2IMAIN VERS (all); UNDEFINE TRANSACTION DB2I vers (ttttt); UNDEFINE TRANSACTION DB2I vers (all);
Note that the previous UNDEFINE statements leave the DATA definition for EMPNO and the CALL definition for DB2IDIAG in the PGA DD.
PGAU> report transaction db2i;
/* Transaction DB2I version 298 created by PGAADMIN on FEB 14, 1995 17:38.02 */
DEFINE TRANSACTION DB2I
CALL (DB2IMAIN VERSION(672),
DB2IDIAG VERSION(673))
SIDEPROFILE(CICSPGA)
TPNAME(DB2I)
LOGMODE(ORAPLU62)
SYNCLEVEL(0)
NLS_LANGUAGE(american_america.we8ebcdic37c);
PGAU> report transaction db2i with calls;
/* Call DB2IMAIN version 672 created by PGAADMIN on FEB 14, 1995 17:38.01 */
DEFINE CALL DB2IMAIN PKGCALL(PGADB2I_MAIN)
PARMS(EMPNO IN VERSION(638),
EMPREC OUT VERSION(639));
/* Call DB2IDIAG version 673 created by PGAADMIN on FEB 14, 1995 17:38.02 */
DEFINE CALL DB2IDIAG PKGCALL(PGADB2I_DIAG)
PARMS(DB2INFO OUT VERSION(640));
/* Transaction DB2I version 298 created by PGAADMIN on FEB 14, 1995 17:38.02 */
DEFINE TRANSACTION DB2I
CALL (DB2IMAIN VERSION(672),
DB2IDIAG VERSION(673))
SIDEPROFILE(CICSPGA)
TPNAME(DB2I)
LOGMODE(ORAPLU62)
SYNCLEVEL(0)
NLS_LANGUAGE(american_america.we8ebcdic37c);
PGAU> report transaction db2i with data;
/* Data Definition EMPNO version 638 created/updated by PGAADMIN */
/* on FEB 14, 1995 17:02.58 */
DEFINE DATA EMPNO LANGUAGE(IBMVSCOBOLII) USAGE(PASS)
(
01 EMPNO PICTURE IS X(6).
);
/* Data Definition EMPREC version 639 created/updated by PGAADMIN */
/* on FEB 14,1995 17:02.59 */
DEFINE DATA EMPREC PLSDNAME(DCLEMP) LANGUAGE(IBMVSCOBOLII) USAGE(PASS)
(
01 DCLEMP.
10 EMPNO PICTURE IS X(6).
10 FIRSTNME.
* Field FIRSTNME-LEN has PL/SQL name FIRSTNME_LEN
49 FIRSTNME-LEN USAGE IS COMP PICTURE IS S9(4).
* Field FIRSTNME-TEXT has PL/SQL name FIRSTNME_TEXT
49 FIRSTNME-TEXT PICTURE IS X(12).
10 MIDINIT PICTURE IS X(1).
10 LASTNAME.
* Field LASTNAME-LEN has PL/SQL name LASTNAME_LEN
49 LASTNAME-LEN USAGE IS COMP PICTURE IS S9(4).
* Field LASTNAME-TEXT has PL/SQL name LASTNAME_TEXT
49 LASTNAME-TEXT PICTURE IS X(15).
10 WORKDEPT PICTURE IS X(3).
10 PHONENO PICTURE IS X(4).
10 HIREDATE PICTURE IS X(10).
10 JOB PICTURE IS X(8).
10 EDLEVEL USAGE IS COMP PICTURE IS S9(4).
10 SEX PICTURE IS X(1).
10 BIRTHDATE PICTURE IS X(10).
10 SALARY USAGE IS COMP-3 PICTURE IS S9999999V99.
10 BONUS USAGE IS COMP-3 PICTURE IS S9999999V99.
10 COMM USAGE IS COMP-3 PICTURE IS S9999999V99.
);
/* Call DB2IMAIN version 672 created by PGAADMIN on FEB 14, 1995 17:38.01*/
DEFINE CALL DB2IMAIN PKGCALL(PGADB2I_MAIN)
PARMS(EMPNO IN VERSION(638),
EMPREC OUT VERSION(639));
/*Data Definition DB2INFO version 640 created/updated by PGAADMIN */
/* on FEB 14,1995 17:02.00*/
DEFINE DATA DB2INFO PLSDNAME(DB2) LANGUAGE(IBMVSCOBOLII) USAGE(PASS)
(
01 DB2.
05 SQLCODE USAGE IS COMP-4 PICTURE IS S9(9).
05 SQLERRM.
49 SQLERRML USAGE IS COMP-4 PICTURE IS S9(4).
49 SQLERRMT PICTURE IS X(70).
05 DSNERRM.
49 DSNERRML USAGE IS COMP-4 PICTURE IS S9(4).
49 DSNERRMT PICTURE IS X(240) OCCURS 8 TIMES.
);
/* Call DB2IDIAG version 673 created by PGAADMIN on FEB 14, 1995 17:38.02*/
DEFINE CALL DB2IDIAG PKGCALL(PGADB2I_DIAG)
PARMS(DB2INFO OUT VERSION(640));
/* Transaction DB2I version 298 created by PGAADMIN on FEB 14, 1995 17:38.02*/
DEFINE TRANSACTION DB2I
CALL (DB2IMAIN VERSION(672),
DB2IDIAG VERSION(673))
SIDEPROFILE(CICSPGA)
TPNAME(DB2I)
LOGMODE(ORAPLU62)
SYNCLEVEL(0)
NLS_LANGUAGE(american_america.we8ebcdic37c);
PGAU> report transaction db2i with data with debug;
/* Data Definition EMPNO version 638 created/updated by PGAADMIN */
/* on FEB 14, 1995 17:02.58 */
DEFINE DATA EMPNO /* d#=565 */ LANGUAGE(IBMVSCOBOLII) USAGE(PASS)
(
* f#=4005
01 EMPNO PICTURE IS X(6).
);
/* Data Definition EMPREC version 639 created/updated by PGAADMIN */
/* on FEB 14,1995 17:02.59 */
DEFINE DATA EMPREC /* d#=566 */ PLSDNAME(DCLEMP) LANGUAGE(IBMVSCOBOLII) USAGE(PASS)
(
* f#=4006
01 DCLEMP.
* f#=4007
10 EMPNO PICTURE IS X(6).
* f#=4008
10 FIRSTNME.
* f#=4009
* Field FIRSTNME-LEN has PL/SQL name FIRSTNME_LEN
49 FIRSTNME-LEN USAGE IS COMP PICTURE IS S9(4).
* f#=4010
* Field FIRSTNME-TEXT has PL/SQL name FIRSTNME_TEXT
49 FIRSTNME-TEXT PICTURE IS X(12).
* f#=4011
10 MIDINIT PICTURE IS X(1).
* f#=4012
10 LASTNAME.
* f#=4013
* Field LASTNAME-LEN has PL/SQL name LASTNAME_LEN
49 LASTNAME-LEN USAGE IS COMP PICTURE IS S9(4).
* f#=4014
* Field LASTNAME-TEXT has PL/SQL name LASTNAME_TEXT
49 LASTNAME-TEXT PICTURE IS X(15).
* f#=4015
10 WORKDEPT PICTURE IS X(3).
* f#=4016
10 PHONENO PICTURE IS X(4).
* f#=4017
10 HIREDATE PICTURE IS X(10).
* f#=4018
10 JOB PICTURE IS X(8).
* f#=4019
10 EDLEVEL USAGE IS COMP PICTURE IS S9(4).
* f#=4020
10 SEX PICTURE IS X(1).
* f#=4021
10 BIRTHDATE PICTURE IS X(10).
* f#=4022
10 SALARY USAGE IS COMP-3 PICTURE IS S9999999V99.
* f#=4023
10 BONUS USAGE IS COMP-3 PICTURE IS S9999999V99.
* f#=4024
10 COMM USAGE IS COMP-3 PICTURE IS S9999999V99.
);
/* Call DB2IMAIN version 672 created by PGAADMIN on FEB 14, 1995 17:38.01*/
DEFINE CALL DB2IMAIN PKGCALL(PGADB2I_MAIN) /* c#=672 */
PARMS(EMPNO IN VERSION(638) /* d#=565 */,
EMPREC OUT VERSION(639) /* d#=566 */);
/*Data Definition DB2INFO version 640 created/updated by PGAADMIN */
/* on FEB 14,1995 17:02.00*/
DEFINE DATA DB2INFO /* d#=567 */ PLSDNAME(DB2) LANGUAGE(IBMVSCOBOLII) USAGE(PASS)
(
* f#=4025
01 DB2.
* f#=4026
05 SQLCODE USAGE IS COMP-4 PICTURE IS S9(9).
* f#=4027
05 SQLERRM.
* f#=4028
49 SQLERRML USAGE IS COMP-4 PICTURE IS S9(4).
* f#=4029
49 SQLERRMT PICTURE IS X(70).
* f#=4030
05 DSNERRM.
* f#=4031
49 DSNERRML USAGE IS COMP-4 PICTURE IS S9(4).
* f#=4032
49 DSNERRMT PICTURE IS X(240) OCCURS 8 TIMES.
);
/* Call DB2IDIAG version 673 created by PGAADMIN on FEB 14, 1995 17:38.02*/
DEFINE CALL DB2IDIAG PKGCALL(PGADB2I_DIAG) /* c#=673 */
PARMS(DB2INFO OUT VERSION(640) /* d#=567 */);
/* Transaction DB2I version 298 created by PGAADMIN on FEB 14, 1995 17:38.02*/
DEFINE TRANSACTION DB2I /* t#=298 */
CALL (DB2IMAIN VERSION(672) /* c#=672 */,
DB2IDIAG VERSION(673) /* c#=673 */)
SIDEPROFILE(CICSPGA) /* a#=2 */
TPNAME(DB2I) /* a#=3 */
LOGMODE(ORAPLU62) /* a#=4 */
SYNCLEVEL(0) /* a#=6 */
NLS_LANGUAGE(american_america.we8ebcdic37c) /* a#=7 */ ;
PGAU>
PGAU> spool off
PG4APPC TIP pgadb2i contents:
TIP generation date: 15-FEB-03 10:14:17
TIP generation user: PGAADMIN
PG DD version:
PGAU version: 10.2.0.1.0
/*------------------------------------------------------------------*/
/* TIP user-transaction definition */
/*------------------------------------------------------------------*/
remote host transaction program name: DB2I
remote host transaction sync level: 0
remote host application LU name:
remote host application mode entry: ORAPLU62
gateway CPI-C Side Profile name: CICSPGA
remote host environment: IBM370
remote host NLS name: AMERICAN_AMERICA.WE8EBCDIC37C
/*------------------------------------------------------------------*/
/* TIP user-transaction-data type declarations */
/*------------------------------------------------------------------*/
PL/SQL Variable name PL/SQL Variable Type
TYPE FIRSTNME_Typ is RECORD (
FIRSTNME_LEN NUMBER(4,0),
FIRSTNME_TEXT CHAR(12));
TYPE LASTNAME_Typ is RECORD (
LASTNAME_LEN NUMBER(4,0),
LASTNAME_TEXT CHAR(15));
TYPE DCLEMP_Typ is RECORD (
EMPNO CHAR(6),
FIRSTNME FIRSTNME_Typ,
MIDINIT CHAR(1),
LASTNAME LASTNAME_Typ,
WORKDEPT CHAR(3),
PHONENO CHAR(4),
HIREDATE CHAR(10),
JOB CHAR(8),
EDLEVEL NUMBER(4,0),
SEX CHAR(1),
BIRTHDATE CHAR(10),
SALARY NUMBER(9,2),
BONUS NUMBER(9,2),
COMM NUMBER(9,2));
TYPE SQLERRM_Typ is RECORD (
SQLERRML NUMBER(4,0),
SQLERRMT CHAR(70));
DSNERRMT_Key BINARY_INTEGER;
TYPE DSNERRMT_Tbl is TABLE of CHAR(240)
INDEX by BINARY_INTEGER;
TYPE DSNERRM_Typ is RECORD (
DSNERRML NUMBER(4,0),
DSNERRMT DSNERRMT_Tbl);
TYPE DB2_Typ is RECORD (
SQLCODE NUMBER(9,0),
SQLERRM SQLERRM_Typ,
DSNERRM DSNERRM_Typ);
/*------------------------------------------------------------------*/
/* TIP default functions */
/*------------------------------------------------------------------*/
TYPE override_Typ IS RECORD (
tranname VARCHAR2(2000), /* Transaction Program */
transync BINARY_INTEGER, /* RESERVED */
trannls VARCHAR2(50), /* RESERVED */
oltpname VARCHAR2(2000), /* Logical Unit */
oltpmode VARCHAR2(2000), /* LOG Mode Entry */
netaddr VARCHAR2(2000));/* Side Profile */
FUNCTION pgadb2i_init( /* init standard */
tranuse IN OUT BINARY_INTEGER)
RETURN INTEGER;
FUNCTION pgadb2i_init( /* init override */
tranuse IN OUT BINARY_INTEGER,
override IN override_Typ)
RETURN INTEGER;
FUNCTION pgadb2i_init( /* init diagnostic */
tranuse IN OUT BINARY_INTEGER,
tipdiag IN CHAR)
RETURN INTEGER;
FUNCTION pgadb2i_init( /* init over-diag */
tranuse IN OUT BINARY_INTEGER,
override IN override_Typ,
tipdiag IN CHAR)
RETURN INTEGER;
FUNCTION pgadb2i_term( /* terminate */
tranuse IN BINARY_INTEGER,
termtype IN BINARY_INTEGER)
RETURN INTEGER;
/*------------------------------------------------------------------*/
/* TIP user-transaction-call function definitions */
/*------------------------------------------------------------------*/
FUNCTION PGADB2I_MAIN(
tranuse IN BINARY_INTEGER,
EMPNO IN CHAR,
DCLEMP OUT DCLEMP_Typ)
RETURN INTEGER;
FUNCTION PGADB2I_DIAG(
tranuse IN BINARY_INTEGER,
DB2 OUT DB2_Typ)
RETURN INTEGER;
/*------------------------------------------------------------------*/
/* TIP field variables */
/*------------------------------------------------------------------*/
PL/SQL name PL/SQL type
EMPNO CHAR(6)
DCLEMP DCLEMP_Typ
DCLEMP.EMPNO CHAR(6)
DCLEMP.FIRSTNME FIRSTNME_Typ
DCLEMP.FIRSTNME.FIRSTNME_LEN NUMBER(4,0)
DCLEMP.FIRSTNME.FIRSTNME_TEXT CHAR(12)
DCLEMP.MIDINIT CHAR(1)
DCLEMP.LASTNAME LASTNAME_Typ
DCLEMP.LASTNAME.LASTNAME_LEN NUMBER(4,0)
DCLEMP.LASTNAME.LASTNAME_TEXT CHAR(15)
DCLEMP.WORKDEPT CHAR(3)
DCLEMP.PHONENO CHAR(4)
DCLEMP.HIREDATE CHAR(10)
DCLEMP.JOB CHAR(8)
DCLEMP.EDLEVEL NUMBER(4,0)
DCLEMP.SEX CHAR(1)
DCLEMP.BIRTHDATE CHAR(10)
DCLEMP.SALARY NUMBER(9,2)
DCLEMP.BONUS NUMBER(9,2)
DCLEMP.COMM NUMBER(9,2)
DB2 DB2_Typ
DB2.SQLCODE NUMBER(9,0)
DB2.SQLERRM SQLERRM_Typ
DB2.SQLERRM.SQLERRML NUMBER(4,0)
DB2.SQLERRM.SQLERRMT CHAR(70)
DB2.DSNERRM DSNERRM_Typ
DB2.DSNERRM.DSNERRML NUMBER(4,0)
DB2.DSNERRM.DSNERRMT(DSNERRMT_Key) CHAR(240)
SQL> set serveroutput on size 20000
SQL> exec db2idriv('000340','11110000');
Name
JASON R GOUNOT
Sex Birthdate Edlevel
M 05/17/1926 16
Empno Dept Job Phone Hiredate Salary Bonus Commission
000340 E21 FIELDREP 5698 05/05/1947 23840.00 500.00 1907.00
PL/SQL procedure successfully completed.
SQL> exec rtrace('PGADB2I');
UTL_PG warnings enabled
function entry/exit trace enabled
data conversion trace enabled
gateway exchange trace enabled
enter PGADB2I_init diagnostic
time 22-MAR-1995 13:54:47
from PGAADMIN
exit PGADB2I_init diagnostic
enter PGADB2I_MAIN
enter updsndlt
sendcnt, parmlenm => 1, 6
sendllst(sendcnt) => 0
sendllst(sendcnt) => 6
exit updsndlt
EMPNO CHAR(6)
at pos, off, len => 1, 1, 6
enter updrcvlt
recvcnt, parmlenm => 1, 91
recvllst(recvcnt) => 0
recvllst(recvcnt) => 91
exit updrcvlt
enter dataxfer
tranuse => 2
enter bldsxfrl
sendmax => 1
sendbufl => 6
sxfrllst => 0000000100000006
exit bldsxfrl
recvmax => 1
enter bldrxfrl
recvbufl => 91
rxfrllst => 000000010000005B
exit bldrxfrl
enter xfersr
tranuse => 2
trancid => 200E8E08200F2E1800000000
sendbufl => 6
sxfrllst => 000000010000000600000000
recvbufl => 91
rxfrllst => 000000010000005B00000000
recvbufl => 91
rxfrllst => 000000010000005B00000000
exit xfersr
exit dataxfer
enter getrcvla
recvcnt => 1
recvalst(recvcnt) => 0
recvalst(recvcnt) => 91
numplen => 91
exit getrcvla
DCLEMP.EMPNO CHAR(6)
at pos, off, len => 1, 1, 6
DCLEMP.FIRSTNME.FIRSTNME_LEN NUMBER(4,0)
at pos, off, len => 7, 7, 2
DCLEMP.FIRSTNME.FIRSTNME_TEXT CHAR(12)
at pos, off, len => 9, 9, 12
DCLEMP.MIDINIT CHAR(1)
at pos, off, len => 21, 21, 1
DCLEMP.LASTNAME.LASTNAME_LEN NUMBER(4,0)
at pos, off, len => 22, 22, 2
DCLEMP.LASTNAME.LASTNAME_TEXT CHAR(15)
at pos, off, len => 24, 24, 15
DCLEMP.WORKDEPT CHAR(3)
at pos, off, len => 39, 39, 3
DCLEMP.PHONENO CHAR(4)
at pos, off, len => 42, 42, 4
DCLEMP.HIREDATE CHAR(10)
at pos, off, len => 46, 46, 10
DCLEMP.JOB CHAR(8)
at pos, off, len => 56, 56, 8
DCLEMP.EDLEVEL NUMBER(4,0)
at pos, off, len => 64, 64, 2
DCLEMP.SEX CHAR(1)
at pos, off, len => 66, 66, 1
DCLEMP.BIRTHDATE CHAR(10)
at pos, off, len => 67, 67, 10
DCLEMP.SALARY NUMBER(9,2)
at pos, off, len => 77, 77, 5
DCLEMP.BONUS NUMBER(9,2)
at pos, off, len => 82, 82, 5
DCLEMP.COMM NUMBER(9,2)
at pos, off, len => 87, 87, 5
exit PGADB2I_MAIN
enter PGADB2I_term
exit PGADB2I_term
time 22-MAR-1995 13:54:49
from PGAADMIN
no more PGADB2I trace messages
PL/SQL procedure successfully completed.
SQL> spool off