ibm-information-center/dist/eclipse/plugins/i5OS.ic.rzakb_5.4.0.1/lleng.htm

271 lines
17 KiB
HTML
Raw Normal View History

2024-04-02 14:02:31 +00:00
<?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="Length for physical and logical files (positions 30 through 34)" />
<meta name="abstract" content="Use these positions to specify the length of a physical or logical file field." />
<meta name="description" content="Use these positions to specify the length of a physical or logical file field." />
<meta name="DC.subject" content="length, logical files, physical files" />
<meta name="keywords" content="length, logical files, physical files" />
<meta name="DC.Relation" scheme="URI" content="rzakbmstlfpos.htm" />
<meta name="DC.Relation" scheme="URI" content="specrecs.htm" />
<meta name="DC.Relation" scheme="URI" content="rzakbmsttdsst.htm" />
<meta name="DC.Relation" scheme="URI" content="simpmult.htm" />
<meta name="DC.Relation" scheme="URI" content="rzakbmsttdjfld.htm" />
<meta name="copyright" content="(C) Copyright IBM Corporation 2001, 2006" />
<meta name="DC.Rights.Owner" content="(C) Copyright IBM Corporation 2001, 2006" />
<meta name="DC.Format" content="XHTML" />
<meta name="DC.Identifier" content="lleng" />
<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>Length for physical and logical files (positions 30 through 34)</title>
</head>
<body id="lleng"><a name="lleng"><!-- --></a>
<!-- Java sync-link --><script language="Javascript" src="../rzahg/synch.js" type="text/javascript"></script>
<h1 class="topictitle1">Length for physical and logical files (positions 30 through 34)</h1>
<div><p>Use these positions to specify the length of a physical or logical
file field.</p>
<div class="section"><p>For a physical file, use these positions to specify the field
length for each named field (unless you copy it from a referenced field).
Specify the number of digits for a numeric type field, or specify the number
of characters for a character type field.</p>
<p>For a logical file, use these
positions to specify the length of a logical field. Specify the length only
to override or change the length of the corresponding field in the physical
file on which this logical file is based. If you leave this position blank,
the field you are defining has the same length as the corresponding field
in the physical file(s) on which the logical file(s) is based. If the field
in the physical file is variable length and you leave the length blank, the
field is also variable length in the logical file. If you do specify a length,
the field in the logical file is fixed length unless you also specify the
VARLEN keyword. Additionally, the SST (Substring) keyword can be used to control
the length of a logical file field by specifying a character string that is
a subset of another field.</p>
<p>If you specify length, it must be right-aligned;
leading zeros are optional.</p>
</div>
<div class="example"><p><a href="#lleng__bfig3">Figure 1</a> shows correct and incorrect
field length specifications for a physical file.</p>
<div class="fignone" id="lleng__bfig3"><a name="lleng__bfig3"><!-- --></a><span class="figcap">Figure 1. Correct
and incorrect length specifications for physical files</span><pre>|...+....1....+....2....+....3....+....4....+....5
00010A FIELD1 7
A
00020A FIELD2 7
A
00030A FIELD3 R +7
A
</pre>
<div class="note"><span class="notetitle">Note:</span> FIELD1 shows the field length specified incorrectly. FIELD2 and FIELD3
show the field length specified correctly.</div>
</div>
<p>Valid length specifications are:</p>
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" width="100%" frame="void" border="0" rules="none"><thead align="left"><tr><th align="left" valign="bottom" width="50%" id="d0e59"> Data type</th>
<th align="left" valign="bottom" width="50%" id="d0e61"> Valid lengths</th>
</tr>
</thead>
<tbody><tr><td align="left" valign="top" width="50%" headers="d0e59 "> Character</td>
<td align="left" valign="top" width="50%" headers="d0e61 "> 1 through 32 766 characters</td>
</tr>
<tr><td align="left" valign="top" width="50%" headers="d0e59 "> Hexadecimal</td>
<td align="left" valign="top" width="50%" headers="d0e61 "> 1 through 32 766 bytes</td>
</tr>
<tr><td align="left" valign="top" width="50%" headers="d0e59 "> Binary</td>
<td align="left" valign="top" width="50%" headers="d0e61 "> 1 through 18 digits</td>
</tr>
<tr><td align="left" valign="top" width="50%" headers="d0e59 "> Binary character</td>
<td align="left" valign="top" width="50%" headers="d0e61 "> 1 through 32 766 characters</td>
</tr>
<tr><td align="left" valign="top" width="50%" headers="d0e59 "> Zoned decimal</td>
<td align="left" valign="top" width="50%" headers="d0e61 "> 1 through 63 digits</td>
</tr>
<tr><td align="left" valign="top" width="50%" headers="d0e59 "> Packed decimal</td>
<td align="left" valign="top" width="50%" headers="d0e61 "> 1 through 63 digits</td>
</tr>
<tr><td align="left" valign="top" width="50%" headers="d0e59 "> Floating-point (single precision)</td>
<td align="left" valign="top" width="50%" headers="d0e61 "> 1 through 9 digits</td>
</tr>
<tr><td align="left" valign="top" width="50%" headers="d0e59 "> Floating-point (double precision)</td>
<td align="left" valign="top" width="50%" headers="d0e61 "> 1 through 17 digits</td>
</tr>
<tr><td align="left" valign="top" width="50%" headers="d0e59 "> Date</td>
<td align="left" valign="top" width="50%" headers="d0e61 "> 6, 8, or 10 characters</td>
</tr>
<tr><td align="left" valign="top" width="50%" headers="d0e59 "> Time</td>
<td align="left" valign="top" width="50%" headers="d0e61 "> 8 characters</td>
</tr>
<tr><td align="left" valign="top" width="50%" headers="d0e59 "> Timestamp</td>
<td align="left" valign="top" width="50%" headers="d0e61 "> 26 characters</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="section"><p>The length for fields with data type L (date), T (time), or Z
(timestamp) is determined by the system. You should not enter a field length
in positions 30 through 34.</p>
<p>The field length for date and time includes
the separator.</p>
<div class="p">A timestamp has a fixed format that has the following
form: <pre>YYYY-MM-DD-hh.mm.ss.uuuuuu</pre>
</div>
<p>Type in a maximum
of 9 digits for single precision and 17 digits for double precision. The <span class="keyword">i5/OS™</span> program supports a floating-point
accuracy of 7 digits for single precision and 15 digits for double precision.</p>
<p>The
total number of bytes occupied by all the fields in a record must not exceed
32 766 (in storage). See <a href="#lleng__zlength">Table 1</a> for rules
on determining the total length of the record format.</p>
<p>The
system determines the number of bytes actually occupied in storage as follows:</p>
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" width="100%" frame="void" border="0" rules="none"><thead align="left"><tr><th align="left" valign="bottom" width="36.54916512059369%" id="d0e147"> Data type</th>
<th align="left" valign="bottom" width="63.4508348794063%" id="d0e149"> Bytes occupied in storage</th>
</tr>
</thead>
<tbody><tr><td align="left" valign="top" width="36.54916512059369%" headers="d0e147 "> Character</td>
<td align="left" valign="top" width="63.4508348794063%" headers="d0e149 "> Number of characters</td>
</tr>
<tr><td align="left" valign="top" width="36.54916512059369%" headers="d0e147 "> Hexadecimal</td>
<td align="left" valign="top" width="63.4508348794063%" headers="d0e149 "> Number of bytes</td>
</tr>
<tr><td align="left" valign="top" width="36.54916512059369%" headers="d0e147 "> Binary</td>
<td align="left" valign="top" width="63.4508348794063%" headers="d0e149 "> </td>
</tr>
<tr><td align="left" valign="top" width="36.54916512059369%" headers="d0e147 "> 1 through 4 digits</td>
<td align="left" valign="top" width="63.4508348794063%" headers="d0e149 "> 2 bytes</td>
</tr>
<tr><td align="left" valign="top" width="36.54916512059369%" headers="d0e147 "> 5 through 9 digits</td>
<td align="left" valign="top" width="63.4508348794063%" headers="d0e149 "> 4 bytes</td>
</tr>
<tr><td align="left" valign="top" width="36.54916512059369%" headers="d0e147 "> 10 through 18 digits</td>
<td align="left" valign="top" width="63.4508348794063%" headers="d0e149 "> 8 bytes</td>
</tr>
<tr><td align="left" valign="top" width="36.54916512059369%" headers="d0e147 "> Binary character</td>
<td align="left" valign="top" width="63.4508348794063%" headers="d0e149 "> Number of characters</td>
</tr>
<tr><td align="left" valign="top" width="36.54916512059369%" headers="d0e147 "> Zoned decimal</td>
<td align="left" valign="top" width="63.4508348794063%" headers="d0e149 "> Number of digits</td>
</tr>
<tr><td align="left" valign="top" width="36.54916512059369%" headers="d0e147 "> Packed decimal</td>
<td align="left" valign="top" width="63.4508348794063%" headers="d0e149 "> (Number of digits/2) + 1 (truncated
if fractional)</td>
</tr>
<tr><td align="left" valign="top" width="36.54916512059369%" headers="d0e147 "> Floating-point (single precision)</td>
<td align="left" valign="top" width="63.4508348794063%" headers="d0e149 "> 4 bytes</td>
</tr>
<tr><td align="left" valign="top" width="36.54916512059369%" headers="d0e147 "> Floating-point (double precision)</td>
<td align="left" valign="top" width="63.4508348794063%" headers="d0e149 "> 8 bytes</td>
</tr>
<tr><td rowspan="2" align="left" valign="top" width="36.54916512059369%" headers="d0e147 "> Date</td>
<td align="left" valign="top" width="63.4508348794063%" headers="d0e149 "> 10 characters without DATFMT keyword </td>
</tr>
<tr><td valign="top" width="63.4508348794063%" headers="d0e149 ">6, 8 or 10 characters with DATFMT keyword</td>
</tr>
<tr><td align="left" valign="top" width="36.54916512059369%" headers="d0e147 "> Time</td>
<td align="left" valign="top" width="63.4508348794063%" headers="d0e149 "> 8 characters</td>
</tr>
<tr><td align="left" valign="top" width="36.54916512059369%" headers="d0e147 "> Timestamp</td>
<td align="left" valign="top" width="63.4508348794063%" headers="d0e149 "> 26 characters</td>
</tr>
</tbody>
</table>
</div>
<div class="note"><span class="notetitle">Note:</span> The system performs arithmetic operations more efficiently for
a packed decimal than for a zoned decimal data type.</div>
</div>
<div class="section"><p><a href="#lleng__zlength">Table 1</a> describes
the rules for determining total format length.</p>
<table cellpadding="4" cellspacing="0" border="1" class="tableborder"><tr><td>
<a name="lleng__zlength"><!-- --></a><table cellpadding="4" cellspacing="0" summary="" id="lleng__zlength" width="100%" border="0"><caption>Table 1. Rules for determining
total format length</caption><thead align="left"><tr><th align="left" valign="bottom" width="41.00185528756957%" id="d0e240">Situation</th>
<th align="left" valign="bottom" width="58.998144712430424%" id="d0e242">Action</th>
</tr>
</thead>
<tbody><tr><td align="left" valign="top" width="41.00185528756957%" headers="d0e240 ">Does the record format contain any variable-length
fields?</td>
<td align="left" valign="top" width="58.998144712430424%" headers="d0e242 "><ol><li>Add an extra 24 bytes to the total format length.</li>
<li>Add an extra 2 bytes to the format length for each field that is variable
length.</li>
</ol>
</td>
</tr>
<tr><td align="left" valign="top" width="41.00185528756957%" headers="d0e240 ">Does the record format contain any fields
that allow the null value?</td>
<td align="left" valign="top" width="58.998144712430424%" headers="d0e242 ">Divide the total number of fields in the
format by 8, round up to the next highest whole byte, then add to format length.</td>
</tr>
</tbody>
</table>
</td></tr></table>
<p>To override the length of a referenced field (R in position 29)
of a physical file or the length of the field in a logical file, either specify
a new value or a change in length. To increase the length, specify <tt>+n</tt>,
where n is the amount of increase. To decrease the length, specify <tt>-n</tt>,
where n is the amount of decrease. For example, type <tt>+4</tt> to indicate
that a numeric field is to be 4 digits longer than the referenced field. See
the <a href="rzakbmstlfpos.htm">Positional entries for physical and logical files (positions 1 through 44)</a> topic for an example showing how
to override the field length for a physical file.</p>
<p>If the
corresponding field in the physical file record format has a data type of
binary with decimal positions greater than zero, the length cannot be overridden
in the logical file. If the field you are describing is a concatenation of
fields from the associated physical record format, you cannot specify the
length in the logical file. The sum of the physical field lengths is calculated
by the system.</p>
<div class="p">If you specify a value in positions 30 through 34, your
program sees the specified length. However, the length of the field in the
corresponding physical file field does not change. This can cause data conversion
errors. When attempting to add a member to a file or to open a member of a
file, the operating system might send a mapping error message. The operating
system might also send a mapping error message to your program in the following
cases: <ul><li>When reading from a logical file that reduces the length specified in
the corresponding physical file</li>
<li>When writing to a logical file that increases the length specified in
the corresponding physical file</li>
</ul>
</div>
<p>For example, if the physical file field is defined as 4 characters
long and the logical file field decreases the length to 2 characters, a value
of ABCD in the physical file cannot be read by the program, although a value
of AB can. In this case, the program can always write successfully. For character
fields, the data is left-aligned and filled with blanks in the physical file
field. For numeric fields, the data is right-aligned and filled with zeros
in the physical file field.</p>
<p>Positions 30 through 34 are valid only for
field specifications. You must leave these positions blank at the key field,
select/omit field, join, record, and file level.</p>
<div class="note"><span class="notetitle">Note:</span> High-level languages
can impose restrictions on the field length. Any length restrictions should
be observed for files used by these high-level languages.</div>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="rzakbmstlfpos.htm" title="The first 44 positions of the DDS form are called positional entries.">Positional entries for physical and logical files (positions 1 through 44)</a></div>
</div>
<div class="relconcepts"><strong>Related concepts</strong><br />
<div><a href="specrecs.htm" title="If there is more than one record format specified in a logical file, you must specify the PFILE keyword for each record format.">Specify record formats in a logical file in DDS</a></div>
</div>
<div class="reltasks"><strong>Related tasks</strong><br />
<div><a href="simpmult.htm" title="You must specify the PFILE keyword at the record level for simple and multiple format logical files. In a multiple format logical file, a record format can use only the fields common to all the physical files specified on the PFILE keyword for that record format.">Simple and multiple format logical files in DDS</a></div>
</div>
<div class="relref"><strong>Related reference</strong><br />
<div><a href="rzakbmsttdsst.htm" title="Use this field-level keyword to specify a character string that is a subset of an existing character, hexadecimal, zoned field, or graphic.">SST (Substring) keyword—logical files only</a></div>
<div><a href="rzakbmsttdjfld.htm" title="Use this join-level keyword to identify the from and to fields whose values are used to join physical files in a join logical file. These fields are both referred to as join fields.">JFLD (Joined Fields) keyword—join logical files only</a></div>
</div>
</div>
</body>
</html>