296 lines
20 KiB
HTML
296 lines
20 KiB
HTML
<?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> |