<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html lang="en-us" xml:lang="en-us"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="security" content="public" /> <meta name="Robots" content="index,follow" /> <meta http-equiv="PICS-Label" content='(PICS-1.1 "http://www.icra.org/ratingsv02.html" l gen true r (cz 1 lz 1 nz 1 oz 1 vz 1) "http://www.rsac.org/ratingsv01.html" l gen true r (n 0 s 0 v 0 l 0) "http://www.classify.org/safesurf/" l gen true r (SS~~000 1))' /> <meta name="DC.Type" content="reference" /> <meta name="DC.Title" content="Sample SQL precompiler output" /> <meta name="abstract" content="The precompiler output can provide information about your program source." /> <meta name="description" content="The precompiler output can provide information about your program source." /> <meta name="DC.subject" content="precompiler, output from, sample, examples, output from precompiler, COBOL, record number, source record, sequence number, reference column" /> <meta name="keywords" content="precompiler, output from, sample, examples, output from precompiler, COBOL, record number, source record, sequence number, reference column" /> <meta name="DC.Relation" scheme="URI" content="rzajpoutputcompile.htm" /> <meta name="copyright" content="(C) Copyright IBM Corporation 1998, 2006" /> <meta name="DC.Rights.Owner" content="(C) Copyright IBM Corporation 1998, 2006" /> <meta name="DC.Format" content="XHTML" /> <meta name="DC.Identifier" content="rzajpsysprt" /> <meta name="DC.Language" content="en-us" /> <!-- All rights reserved. Licensed Materials Property of IBM --> <!-- US Government Users Restricted Rights --> <!-- Use, duplication or disclosure restricted by --> <!-- GSA ADP Schedule Contract with IBM Corp. --> <link rel="stylesheet" type="text/css" href="./ibmdita.css" /> <link rel="stylesheet" type="text/css" href="./ic.css" /> <title>Sample SQL precompiler output</title> </head> <body id="rzajpsysprt"><a name="rzajpsysprt"><!-- --></a> <!-- Java sync-link --><script language="Javascript" src="../rzahg/synch.js" type="text/javascript"></script> <h1 class="topictitle1">Sample SQL precompiler output</h1> <div><p>The precompiler output can provide information about your program source.</p> <div class="section"><p>To generate the listing:</p> </div> <div class="section"> <ul><li>For non-ILE precompilers, specify the *SOURCE (*SRC) and *XREF options on the OPTION parameter of the CRTSQLxxx command.</li> <li>For ILE precompilers, specify OPTION(*XREF) and OUTPUT(*PRINT) on the CRTSQLxxx command.</li> </ul> </div> <div class="section"><p>The format of the precompiler output is:</p> </div> <div class="example"><div class="fignone"><span class="figcap">Figure 1. Sample COBOL precompiler output format</span><pre>5722ST1 V5R4M0 060210 Create SQL COBOL Program CBLTEST1 08/06/02 11:14:21 Page 1 Source type...............COBOL Program name..............CORPDATA/CBLTEST1 Source file...............CORPDATA/SRC Member....................CBLTEST1 To source file............QTEMP/QSQLTEMP <strong>(1)</strong>Options...................*SRC *XREF *SQL Target release............V5R4M0 INCLUDE file..............*SRCFILE Commit....................*CHG Allow copy of data........*YES Close SQL cursor..........*ENDPGM Allow blocking............*READ Delay PREPARE.............*NO Generation level..........10 Printer file..............*LIBL/QSYSPRT Date format...............*JOB Date separator............*JOB Time format...............*HMS Time separator ...........*JOB Replace...................*YES Relational database.......*LOCAL User .....................*CURRENT RDB connect method........*DUW Default Collection........*NONE Dynamic default collection..............*NO Package name..............*PGMLIB/*PGM Path......................*NAMING SQL rules.................*DB2 User profile..............*NAMING Dynamic User Profile......*USER Sort Sequence.............*JOB Language ID...............*JOB IBM SQL flagging..........*NOFLAG ANS flagging..............*NONE Text......................*SRCMBRTXT Source file CCSID.........65535 Job CCSID.................65535 Decimal result options: Maximum precision.......31 Maximum scale...........31 Minimum divide scale....0 Compiler options..........*NONE <strong>(2)</strong> Source member changed on 06/06/00 10:16:44</pre> <dl><dt class="dlterm">1</dt> <dd>A list of the options you specified when the SQL precompiler was called.</dd> <dt class="dlterm">2</dt> <dd>The date the source member was last changed.</dd> </dl> </div> </div> <div class="example"> <div class="fignone"><pre>5722ST1 V5R4M0 060210 Create SQL COBOL Program CBLTEST1 08/06/02 11:14:21 Page 2 <strong>(1)</strong>Record *...+... 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7 ...+... 8 <strong>(2)</strong>SEQNBR <strong>(3)</strong>Last Change 1 IDENTIFICATION DIVISION. 100 2 PROGRAM-ID. CBLTEST1. 200 3 ENVIRONMENT DIVISION. 300 4 CONFIGURATION SECTION. 400 5 SOURCE-COMPUTER. IBM-AS400. 500 6 OBJECT-COMPUTER. IBM-AS400. 600 7 INPUT-OUTPUT SECTION. 700 8 FILE-CONTROL. 800 9 SELECT OUTFILE, ASSIGN TO PRINTER-QPRINT, 900 10 FILE STATUS IS FSTAT. 1000 11 DATA DIVISION. 1100 12 FILE SECTION. 1200 13 FD OUTFILE 1300 14 DATA RECORD IS REC-1, 1400 15 LABEL RECORDS ARE OMITTED. 1500 16 01 REC-1. 1600 17 05 CC PIC X. 1700 18 05 DEPT-NO PIC X(3). 1800 19 05 FILLER PIC X(5). 1900 20 05 AVERAGE-EDUCATION-LEVEL PIC ZZZ. 2000 21 05 FILLER PIC X(5). 2100 22 05 AVERAGE-SALARY PIC ZZZZ9.99. 2200 23 01 ERROR-RECORD. 2300 24 05 CC PIC X. 2400 25 05 ERROR-CODE PIC S9(5). 2500 26 05 ERROR-MESSAGE PIC X(70). 2600 27 WORKING-STORAGE SECTION. 2700 28 EXEC SQL 2800 29 INCLUDE SQLCA 2900 30 END-EXEC. 3000 31 77 FSTAT PIC XX. 3100 32 01 AVG-RECORD. 3200 33 05 WORKDEPT PIC X(3). 3300 34 05 AVG-EDUC PIC S9(4) USAGE COMP-4. 3400 35 05 AVG-SALARY PIC S9(6)V99 COMP-3. 3500 36 PROCEDURE DIVISION. 3600 37 *************************************************************** 3700 38 * This program will get the average education level and the * 3800 39 * average salary by department. * 3900 40 *************************************************************** 4000 41 A000-MAIN-PROCEDURE. 4100 42 OPEN OUTPUT OUTFILE. 4200 43 *************************************************************** 4300 44 * Set-up WHENEVER statement to handle SQL errors. * 4400 45 *************************************************************** 4500 46 EXEC SQL 4600 47 WHENEVER SQLERROR GO TO B000-SQL-ERROR 4700 48 END-EXEC. 4800</pre> <dl><dt class="dlterm">1</dt> <dd>Record number assigned by the precompiler when it reads the source record. Record numbers are used to identify the source record in error messages and SQL run-time processing.</dd> <dt class="dlterm">2</dt> <dd>Sequence number taken from the source record. The sequence number is the number seen when you use the source entry utility (SEU) to edit the source member.</dd> <dt class="dlterm">3</dt> <dd>Date when the source record was last changed. If Last Change is blank, it indicates that the record has not been changed since it was created.</dd> </dl> </div> </div> <div class="example"><div class="fignone"><pre>5722ST1 V5R4M0 060210 Create SQL COBOL Program CBLTEST1 08/06/02 11:14:21 Page 3 Record *...+... 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7 ...+... 8 SEQNBR Last change 49 *************************************************************** 4900 50 * Declare cursor * 5000 51 *************************************************************** 5100 52 EXEC SQL 5200 53 DECLARE CURS CURSOR FOR 5300 54 SELECT WORKDEPT, AVG(EDLEVEL), AVG(SALARY) 5400 55 FROM CORPDATA.EMPLOYEE 5500 56 GROUP BY WORKDEPT 5600 57 END-EXEC. 5700 58 *************************************************************** 5800 59 * Open cursor * 5900 60 *************************************************************** 6000 61 EXEC SQL 6100 62 OPEN CURS 6200 63 END-EXEC. 6300 64 *************************************************************** 6400 65 * Fetch all result rows * 6500 66 *************************************************************** 6600 67 PERFORM A010-FETCH-PROCEDURE THROUGH A010-FETCH-EXIT 6700 68 UNTIL SQLCODE IS = 100. 6800 69 *************************************************************** 6900 70 * Close cursor * 7000 71 *************************************************************** 7100 72 EXEC SQL 7200 73 CLOSE CURS 7300 74 END-EXEC. 7400 75 CLOSE OUTFILE. 7500 76 STOP RUN. 7600 77 *************************************************************** 7700 78 * Fetch a row and move the information to the output record. * 7800 79 *************************************************************** 7900 80 A010-FETCH-PROCEDURE. 8000 81 MOVE SPACES TO REC-1. 8100 82 EXEC SQL 8200 83 FETCH CURS INTO :AVG-RECORD 8300 84 END-EXEC. 8400 85 IF SQLCODE IS = 0 8500 86 MOVE WORKDEPT TO DEPT-NO 8600 87 MOVE AVG-SALARY TO AVERAGE-SALARY 8700 88 MOVE AVG-EDUC TO AVERAGE-EDUCATION-LEVEL 8800 89 WRITE REC-1 AFTER ADVANCING 1 LINE. 8900 90 A010-FETCH-EXIT. 9000 91 EXIT. 9100 92 *************************************************************** 9200 93 * An SQL error occurred. Move the error number to the error * 9300 94 * record and stop running. * 9400 95 *************************************************************** 9500 96 B000-SQL-ERROR. 9600 97 MOVE SPACES TO ERROR-RECORD. 9700 98 MOVE SQLCODE TO ERROR-CODE. 9800 99 MOVE "AN SQL ERROR HAS OCCURRED" TO ERROR-MESSAGE. 9900 100 WRITE ERROR-RECORD AFTER ADVANCING 1 LINE. 10000 101 CLOSE OUTFILE. 10100 102 STOP RUN. 10200 * * * * * E N D O F S O U R C E * * * * *</pre> </div> </div> <div class="example"><div class="fignone"><pre>5722ST1 V5R4M0 060210 Create SQL COBOL Program CBLTEST1 08/06/02 11:14:21 Page 4 CROSS REFERENCE <strong>1</strong> <strong>2</strong> <strong>3</strong> Data Names Define Reference AVERAGE-EDUCATION-LEVEL 20 IN REC-1 AVERAGE-SALARY 22 IN REC-1 AVG-EDUC 34 SMALL INTEGER PRECISION(4,0) IN AVG-RECORD AVG-RECORD 32 STRUCTURE 83 AVG-SALARY 35 DECIMAL(8,2) IN AVG-RECORD BIRTHDATE 55 DATE(10) COLUMN IN CORPDATA.EMPLOYEE BONUS 55 DECIMAL(9,2) COLUMN IN CORPDATA.EMPLOYEE B000-SQL-ERROR **** LABEL 47 CC 17 CHARACTER(1) IN REC-1 CC 24 CHARACTER(1) IN ERROR-RECORD COMM 55 DECIMAL(9,2) COLUMN IN CORPDATA.EMPLOYEE CORPDATA **** <strong>(4)</strong> COLLECTION <strong>(5)</strong> 55 CURS 53 CURSOR 62 73 83 DEPT-NO 18 CHARACTER(3) IN REC-1 EDLEVEL **** COLUMN 54 <strong>(6)</strong> EDLEVEL 55 SMALL INTEGER PRECISION(4,0) COLUMN (NOT NULL) IN CORPDATA.EMPLOYEE EMPLOYEE **** TABLE IN CORPDATA <strong>(7)</strong> 55 EMPNO 55 CHARACTER(6) COLUMN (NOT NULL) IN CORPDATA.EMPLOYEE ERROR-CODE 25 NUMERIC(5,0) IN ERROR-RECORD ERROR-MESSAGE 26 CHARACTER(70) IN ERROR-RECORD ERROR-RECORD 23 STRUCTURE FIRSTNME 55 VARCHAR(12) COLUMN (NOT NULL) IN CORPDATA.EMPLOYEE FSTAT 31 CHARACTER(2) HIREDATE 55 DATE(10) COLUMN IN CORPDATA.EMPLOYEE JOB 55 CHARACTER(8) COLUMN IN CORPDATA.EMPLOYEE LASTNAME 55 VARCHAR(15) COLUMN (NOT NULL) IN CORPDATA.EMPLOYEE MIDINIT 55 CHARACTER(1) COLUMN (NOT NULL) IN CORPDATA.EMPLOYEE PHONENO 55 CHARACTER(4) COLUMN IN CORPDATA.EMPLOYEE REC-1 16 SALARY **** COLUMN 54 SALARY 55 DECIMAL(9,2) COLUMN IN CORPDATA.EMPLOYEE SEX 55 CHARACTER(1) COLUMN IN CORPDATA.EMPLOYEE WORKDEPT 33 CHARACTER(3) IN AVG-RECORD WORKDEPT **** COLUMN 54 56 WORKDEPT 55 CHARACTER(3) COLUMN IN CORPDATA.EMPLOYEE No errors found in source 102 Source records processed * * * * * E N D O F L I S T I N G * * * * *</pre> </div> <dl><dt class="dlterm"><span><span>1</span></span></dt> <dd>Data names are the symbolic names used in source statements.</dd> <dt class="dlterm"><span><span>2</span></span></dt> <dd>The define column specifies the line number at which the name is defined. The line number is generated by the SQL precompiler. **** means that the object was not defined or the precompiler did not recognize the declarations.</dd> <dt class="dlterm"><span><span>3</span></span></dt> <dd>The reference column contains two types of information: <ul><li>What the symbolic name is defined as <span><span>4</span></span></li> <li>The line numbers where the symbolic name occurs <span><span>5</span></span></li> </ul> <p>If the symbolic name refers to a valid host variable, the data-type <span><span>6</span></span> or data-structure <span><span>7</span></span> is also noted.</p> </dd> </dl> </div> </div> <div> <div class="familylinks"> <div class="parentlink"><strong>Parent topic:</strong> <a href="rzajpoutputcompile.htm" title="The following sections describe the various kinds of output supplied by the precompiler.">Output from the SQL precompiler</a></div> </div> </div> </body> </html>