ibm-information-center/dist/eclipse/plugins/i5OS.ic.apis_5.4.0.1/qsqprced.htm

4579 lines
134 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Copyright" content="Copyright (c) 2006 by IBM Corporation">
<title>Process Extended Dynamic SQL (QSQPRCED) API</title>
<!-- Begin Header Records ========================================== -->
<!-- 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. -->
<!-- File SCRIPT A converted by B2H R4.1 (346) (CMS) by V2KEA304 -->
<!-- at RCHVMW2 on 17 Feb 1999 at 11:05:09 -->
<!--File Edited March 2001 -->
<!-- This file has undergone html cleanup on 9/24/01 by JET -->
<!-- ---------------------------------------------------------------- -->
<!-- Changed for XPF DCR 99228 - SQL Diagnostic Area Support on 10/23/02 -->
<!-- by Mietek for v5r3m0.xpf. Revision tag for these changes is 'v5r3a'.-->
<!-- ---------------------------------------------------------------- -->
<!-- Changed for XPF DCR 99257.2 - Larger Decimal Support on 3/3/03 -->
<!-- by Scott Forstie for v5r3.Revision tag for these changes is 'v5r3b'.-->
<!-- ---------------------------------------------------------------- -->
<!-- Changed for XPF DCR 99226.x - SQL Binary Datatypes on 5/8/03 -->
<!-- by Scott Forstie for v5r3.Revision tag for these changes is 'v5r3c'.-->
<!-- ---------------------------------------------------------------- -->
<!-- Changed for XPF DCR 99956 - 2MB SQL statements on 12/3/04 -->
<!-- by Clifford Hansen for v5r4.Revision tag for these changes is 'v5r4a'.-->
<!-- ---------------------------------------------------------------- -->
<!-- Changed for XPF PTR 9B04077 - Support 100 byte user defined field -->
<!-- by Scott Forstie for v5r4.Revision tag for these changes is 'v5r4b'.-->
<!--End Header Records -->
<link rel="stylesheet" type="text/css" href="../rzahg/ic.css">
</head>
<body>
<a name="top_Of_Page"></a>
<!-- Java sync-link -->
<script language="Javascript" src="../rzahg/synch.js" type="text/javascript">
</script>
<h2>Process Extended Dynamic SQL (QSQPRCED) API</h2>
<div class="box" style="width: 80%;">
<br>
&nbsp;&nbsp;Required Parameter Group:<br>
<!-- iddvc RMBR -->
<br>
<table width="100%">
<tr>
<td align="center" valign="top" width="10%">1</td>
<td align="left" valign="top" width="50%">SQL communications area</td>
<td align="left" valign="top" width="20%">Output</td>
<td align="left" valign="top" width="20%">Char(136)</td>
</tr>
<tr>
<td align="center" valign="top">2</td>
<td align="left" valign="top">SQL descriptor area</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Char(*)</td>
</tr>
<tr>
<td align="center" valign="top">3</td>
<td align="left" valign="top">Function template format</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Char(8)</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="left" valign="top">Function template</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Char(*)</td>
</tr>
<tr>
<td align="center" valign="top">5</td>
<td align="left" valign="top">Error code</td>
<td align="left" valign="top">I/O</td>
<td align="left" valign="top">Char(*)</td>
</tr>
</table>
<br>
&nbsp;&nbsp;Optional Parameter Group 1:<br>
<!-- iddvc RMBR -->
<br>
<table width="100%">
<tr>
<td align="center" valign="top" width="10%">6</td>
<td align="left" valign="top" width="50%">SQL diagnostic information receiver</td>
<td align="left" valign="top" width="20%">Output</td>
<td align="left" valign="top" width="20%">Char(*)</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">7</td>
<td align="left" valign="top" width="50%">Length of SQL diagnostic information receiver</td>
<td align="left" valign="top" width="20%">Input</td>
<td align="left" valign="top" width="20%">Binary(4)</td>
</tr>
</table>
<br>
&nbsp;&nbsp;Default Public Authority: *USE<br>
<!-- iddvc RMBR -->
<br>
&nbsp;&nbsp;Threadsafe: Conditional; see <a href="#usage_notes">Usage
Notes</a>.<br>
<!-- iddvc RMBR -->
<br>
</div>
<p>The Process Extended Dynamic SQL (QSQPRCED) API provides functions to
process extended dynamic SQL statements in an SQL package object. In
particular, this API provides the user with the only way to do blocked INSERT
using SQLDA.</p>
<br>
<h3>Authorities and Locks</h3>
<p><!-- v5r1 dcr 98321 - validate package name and support delete --> Creating
an SQL package requires that you have *ADD and *READ authority to the library
that will contain the package. Using an existing SQL package requires that you
have *OBJOPR and *READ authority to the package. To use the PREPARE function of
the API, you must have *OBJOPR and *ADD authority to the package.
<!--v5r1 dcr 98321 - validate package name and support delete --> To use a sort
sequence table, you must have *USE authority to the table and *EXECUTE
authority to the library containing the table. To delete a specified package,
you must have *OBJEXIST authority to the package and *EXECUTE authority to the
library containing the package.</p>
<br>
<h3>Required Parameter Group</h3>
<dl>
<dt><strong>SQL communications area</strong></dt>
<dd>OUTPUT; CHAR(136)
<p>This is used for returning diagnostic information. It includes the SQLCODE
variable, indicating whether an error has occurred. If SQLCODE has a value of 0
after a call to this API, the function was successful.</p>
<p>You should have this space declared in the program that calls this API. This
parameter is considered output because the API uses the space to pass back
information. The format of the structure is standard and can be included using
the INCLUDE SQLCA statement in an SQL program. It is described more completely
in the <a href="../sqlp/rbafykickoff.htm">DB2 UDB for iSeries SQL Programming
Concepts</a> topic and <a href="../db2/rbafzmst02.htm">DB2 UDB for iSeries SQL
Reference</a> topic.</p>
</dd>
<dt><strong>SQL descriptor area</strong></dt>
<dd>INPUT; CHAR(*)
<p>This is used for you to pass information about the variables being used on a
specific SQL statement. The SQLDA is used for passing the address, data type,
length, and coded character set identifier (CCSID)for variables on an OPEN,
EXECUTE, FETCH, or DESCRIBE function.</p>
<p>The format of the structure is standard and can be included using the
INCLUDE SQLDA statement in an SQL program. It is described more completely in
the <a href="../sqlp/rbafykickoff.htm">DB2 UDB for iSeries SQL Programming
Concepts</a> topic and <a href="../db2/rbafzmst02.htm">DB2 UDB for iSeries SQL
Reference</a> topic.</p>
</dd>
<dt><strong>Function template format</strong></dt>
<dd>INPUT; CHAR(8)
<p>The format of the function template being used. The possible values are:</p>
<table>
<tr>
<td width="15%" valign="top"><em>SQLP0100</em></td>
<td width="85%" valign="top">Basic template</td>
</tr>
<tr>
<td width="15%" valign="top"><em>SQLP0110</em></td>
<td width="85%" valign="top">Extended SQLP0100 template</td>
</tr>
<tr>
<td valign="top"><em>SQLP0200</em></td>
<td valign="top">Template for using scrollable cursors or blocked INSERT</td>
</tr>
<tr>
<td width="15%" valign="top"><em>SQLP0210</em></td>
<td width="85%" valign="top">Extended SQLP0200 template</td>
</tr>
<tr>
<td valign="top"><em>SQLP0300</em></td>
<td valign="top">Template for options that may improve query performance</td>
</tr>
<tr>
<td width="15%" valign="top"><em>SQLP0310</em></td>
<td width="85%" valign="top">Extended SQLP0300 template</td>
</tr>
<tr>
<td valign="top"><em>SQLP0400</em></td>
<td valign="top">Template for specifying additional options that apply to
package creation.</td>
</tr>
<tr>
<td width="15%" valign="top"><em>SQLP0410</em></td>
<td width="85%" valign="top">Extended SQLP0400 template</td>
</tr>
<tr>
<td valign="top"><em>SQLP0500</em></td>
<td valign="top">Template for specifying the retrieval of SQL diagnostic information.</td>
</tr>
</table>
<br>
<p>For more information, see <a href="#HDRTMPL1">SQLP0100 Format</a>, <a href="#HDRTMPL11">SQLP0110 Format</a>, <a href=
"#HDRTMPL2">SQLP0200 Format</a>, <a href=
"#HDRTMPL21">SQLP0210 Format</a>, <a href="#HDRTMPL3">SQLP0300 Format</a>, <a href="#HDRTMPL31">SQLP0310 Format</a>, <a
href="#HDRTMPL4">SQLP0400 Format</a>, <a
href="#HDRTMPL41">SQLP0410 Format</a> or <a
href="#HDRTMPL5">SQLP0500 Format</a>.</p>
</dd>
<dt><strong>Function template</strong></dt>
<dd>INPUT; CHAR(*)
<p>A structure that determines the function to perform, the requested statement
to process, and the SQL package to be used. This also contains the text of the
statement, which is required for the PREPARE function. For the format of this
parameter, see <a href="#HDRTMPL1">SQLP0100 Format</a>, <a href="#HDRTMPL11">SQLP0110 Format</a>, <a href=
"#HDRTMPL2">SQLP0200 Format</a>, <a href=
"#HDRTMPL21">SQLP0210 Format</a>, <a href="#HDRTMPL3">SQLP0300 Format</a>, <a href="#HDRTMPL31">SQLP0310 Format</a>, <a
href="#HDRTMPL4">SQLP0400 Format</a>, <a
href="#HDRTMPL41">SQLP0410 Format</a> or <a
href="#HDRTMPL5">SQLP0500 Format</a>.</p>
</dd>
<dt><strong>Error code</strong></dt>
<dd>I/O; CHAR(*)
<p>The structure in which to return error information. For the format of the
structure, see <a href="../apiref/error.htm#hdrerrcod">Error Code Parameter</a>.</p>
</dd>
</dl>
<br>
<h3>Optional Parameter Group 1</h3>
<dl>
<dt><strong>SQL diagnostic information receiver</strong></dt>
<dd>OUTPUT; CHAR(*)
<p>This is used for receiving SQL diagnostic information from the SQL diagnostic area. The SQL diagnostic area contains information about an SQL statement (other then a GET DIAGNOSTIC statement) that was executed prior to invoking the API.</p>
<p>You should have this space declared in the program that calls this API. This
parameter is considered output because the API uses the space to pass back
information.</p>
<p>The format of the data received in this space depends on the type of
diagnostic item(s) being retrieved. You can specify statement, condition, or connection information item types to be retrieved on <a href="#HDRTMPL5">SQLP0500 Format</a> template. For detailed description of the format of the retrieved data specific for an information item type, see <a href="#HDRDINF"> Diagnostic Information Data Format</a>.</p>
<p>This parameter is required for function D.</p>
</dd>
<dt><strong>Length of SQL diagnostic information receiver</strong></dt>
<dd>INPUT; BINARY(4)
<p>The length of the SQL diagnostic information receiver.</p>
<p>This parameter is required for function D and it must be specified for this function with the minimum value of 8. If specified for other functions, it must be set to 0.</p>
</dd>
</dl>
<h3><a name="HDRTMPL1">SQLP0100 Format</a></h3>
<p>The following shows the format of the function template parameter for the
SQLP0100 format. For detailed descriptions of the fields in the table, see <a
href="#HDRTMPLFD">Field Descriptions</a>.</p>
<table border width="80%">
<tr>
<th align="center" valign="bottom" colspan="2">Offset</th>
<th align="left" valign="bottom" rowspan="2">Type</th>
<th align="left" valign="bottom" rowspan="2">Field</th>
</tr>
<tr>
<th align="center" valign="bottom">Dec</th>
<th align="center" valign="bottom">Hex</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">0</td>
<td align="center" valign="top" width="10%">0</td>
<td align="left" valign="top" width="20%">CHAR(1)</td>
<td align="left" valign="top" width="60%">Function</td>
</tr>
<tr>
<td align="center" valign="top">1</td>
<td align="center" valign="top">1</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">SQL package name</td>
</tr>
<tr>
<td align="center" valign="top">11</td>
<td align="center" valign="top">B</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">SQL package library name</td>
</tr>
<tr>
<td align="center" valign="top">21</td>
<td align="center" valign="top">15</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Main program name</td>
</tr>
<tr>
<td align="center" valign="top">31</td>
<td align="center" valign="top">1F</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Main program library name</td>
</tr>
<tr>
<td align="center" valign="top">41</td>
<td align="center" valign="top">29</td>
<td align="left" valign="top">CHAR(18)</td>
<td align="left" valign="top">Statement name</td>
</tr>
<tr>
<td align="center" valign="top">59</td>
<td align="center" valign="top">3B</td>
<td align="left" valign="top">CHAR(18)</td>
<td align="left" valign="top">Cursor name</td>
</tr>
<tr>
<td align="center" valign="top">77</td>
<td align="center" valign="top">4D</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Open options</td>
</tr>
<tr>
<td align="center" valign="top">78</td>
<td align="center" valign="top">4E</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Using clause for describe</td>
</tr>
<tr>
<td align="center" valign="top">79</td>
<td align="center" valign="top">4F</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Commitment control</td>
</tr>
<tr>
<td align="center" valign="top">80</td>
<td align="center" valign="top">50</td>
<td align="left" valign="top">CHAR(3)</td>
<td align="left" valign="top">Date format</td>
</tr>
<tr>
<td align="center" valign="top">83</td>
<td align="center" valign="top">53</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Date separator</td>
</tr>
<tr>
<td align="center" valign="top">84</td>
<td align="center" valign="top">54</td>
<td align="left" valign="top">CHAR(3)</td>
<td align="left" valign="top">Time format</td>
</tr>
<tr>
<td align="center" valign="top">87</td>
<td align="center" valign="top">57</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Time separator</td>
</tr>
<tr>
<td align="center" valign="top">88</td>
<td align="center" valign="top">58</td>
<td align="left" valign="top">CHAR(3)</td>
<td align="left" valign="top">Naming option</td>
</tr>
<tr>
<td align="center" valign="top">91</td>
<td align="center" valign="top">5B</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Decimal point</td>
</tr>
<tr>
<td align="center" valign="top">92</td>
<td align="center" valign="top">5C</td>
<td align="left" valign="top">BINARY(2)</td>
<td align="left" valign="top">Blocking factor</td>
</tr>
<tr>
<td align="center" valign="top">94</td>
<td align="center" valign="top">5E</td>
<td align="left" valign="top">BINARY(2)</td>
<td align="left" valign="top">Statement length</td>
</tr>
<tr>
<td align="center" valign="top">96</td>
<td align="center" valign="top">60</td>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Statement text</td>
</tr>
</table>
<h3><a name="HDRTMPL11">SQLP0110 Format</a></h3>
<p>The following shows the format of the function template parameter for the
SQLP0110 format. For detailed descriptions of the fields in the table, see <a
href="#HDRTMPLFD">Field Descriptions</a>.</p>
<table border width="80%">
<tr>
<th align="center" valign="bottom" colspan="2">Offset</th>
<th align="left" valign="bottom" rowspan="2">Type</th>
<th align="left" valign="bottom" rowspan="2">Field</th>
</tr>
<tr>
<th align="center" valign="bottom">Dec</th>
<th align="center" valign="bottom">Hex</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">0</td>
<td align="center" valign="top" width="10%">0</td>
<td align="left" valign="top" width="20%">CHAR(1)</td>
<td align="left" valign="top" width="60%">Function</td>
</tr>
<tr>
<td align="center" valign="top">1</td>
<td align="center" valign="top">1</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">SQL package name</td>
</tr>
<tr>
<td align="center" valign="top">11</td>
<td align="center" valign="top">B</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">SQL package library name</td>
</tr>
<tr>
<td align="center" valign="top">21</td>
<td align="center" valign="top">15</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Main program name</td>
</tr>
<tr>
<td align="center" valign="top">31</td>
<td align="center" valign="top">1F</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Main program library name</td>
</tr>
<tr>
<td align="center" valign="top">41</td>
<td align="center" valign="top">29</td>
<td align="left" valign="top">CHAR(18)</td>
<td align="left" valign="top">Statement name</td>
</tr>
<tr>
<td align="center" valign="top">59</td>
<td align="center" valign="top">3B</td>
<td align="left" valign="top">CHAR(18)</td>
<td align="left" valign="top">Cursor name</td>
</tr>
<tr>
<td align="center" valign="top">77</td>
<td align="center" valign="top">4D</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Open options</td>
</tr>
<tr>
<td align="center" valign="top">78</td>
<td align="center" valign="top">4E</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Using clause for describe</td>
</tr>
<tr>
<td align="center" valign="top">79</td>
<td align="center" valign="top">4F</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Commitment control</td>
</tr>
<tr>
<td align="center" valign="top">80</td>
<td align="center" valign="top">50</td>
<td align="left" valign="top">CHAR(3)</td>
<td align="left" valign="top">Date format</td>
</tr>
<tr>
<td align="center" valign="top">83</td>
<td align="center" valign="top">53</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Date separator</td>
</tr>
<tr>
<td align="center" valign="top">84</td>
<td align="center" valign="top">54</td>
<td align="left" valign="top">CHAR(3)</td>
<td align="left" valign="top">Time format</td>
</tr>
<tr>
<td align="center" valign="top">87</td>
<td align="center" valign="top">57</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Time separator</td>
</tr>
<tr>
<td align="center" valign="top">88</td>
<td align="center" valign="top">58</td>
<td align="left" valign="top">CHAR(3)</td>
<td align="left" valign="top">Naming option</td>
</tr>
<tr>
<td align="center" valign="top">91</td>
<td align="center" valign="top">5B</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Decimal point</td>
</tr>
<tr>
<td align="center" valign="top">92</td>
<td align="center" valign="top">5C</td>
<td align="left" valign="top">BINARY(2)</td>
<td align="left" valign="top">Blocking factor</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">94</td>
<td align="center" valign="top" width="10%">5E</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="60%">Offset to statement text length and
statement text</td>
</tr>
<tr>
<td align="center" valign="top">98</td>
<td align="center" valign="top">62</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Hex literal option</td>
</tr>
<tr>
<td align="center" valign="top">
<img src="v5r4adelta.gif" alt="Start of change">
99</td>
<td align="center" valign="top">63</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Statement length type
<img src="v5r4adeltaend.gif" alt="End of change">
</td>
</tr>
<tr>
<td align="center" valign="top">
<img src="v5r4adelta.gif" alt="Start of change">
100</td>
<td align="center" valign="top">64</td>
<td align="left" valign="top">CHAR(12)</td>
<td align="left" valign="top">Reserved
<img src="v5r4adeltaend.gif" alt="End of change">
</td>
</tr>
<tr>
<td align="center" valign="top">
<img src="v5r4adelta.gif" alt="Start of change">
*</td>
<td align="center" valign="top">*</td>
<td align="left" valign="top">BINARY(2) or BINARY(4)</td>
<td align="left" valign="top">Statement length
<img src="v5r4adeltaend.gif" alt="End of change">
</td>
</tr>
<tr>
<td align="center" valign="top">*</td>
<td align="center" valign="top">*</td>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Statement text</td>
</tr>
</table>
<br>
<br>
<h3><a name="HDRTMPL2">SQLP0200 Format</a></h3>
<p>The following shows the format of the function template parameter for the
SQLP0200 format. For detailed descriptions of the fields in the table, see <a
href="#HDRTMPLFD">Field Descriptions</a>.</p>
<table border width="80%">
<tr>
<th align="center" valign="bottom" colspan="2">Offset</th>
<th align="left" valign="bottom" rowspan="2">Type</th>
<th align="left" valign="bottom" rowspan="2">Field</th>
</tr>
<tr>
<th align="center" valign="bottom">Dec</th>
<th align="center" valign="bottom">Hex</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">0</td>
<td align="center" valign="top" width="10%">0</td>
<td align="left" valign="top" width="20%">CHAR(1)</td>
<td align="left" valign="top" width="60%">Function</td>
</tr>
<tr>
<td align="center" valign="top">1</td>
<td align="center" valign="top">1</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">SQL package name</td>
</tr>
<tr>
<td align="center" valign="top">11</td>
<td align="center" valign="top">B</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">SQL package library name</td>
</tr>
<tr>
<td align="center" valign="top">21</td>
<td align="center" valign="top">15</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Main program name</td>
</tr>
<tr>
<td align="center" valign="top">31</td>
<td align="center" valign="top">1F</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Main program library name</td>
</tr>
<tr>
<td align="center" valign="top">41</td>
<td align="center" valign="top">29</td>
<td align="left" valign="top">CHAR(18)</td>
<td align="left" valign="top">Statement name</td>
</tr>
<tr>
<td align="center" valign="top">59</td>
<td align="center" valign="top">3B</td>
<td align="left" valign="top">CHAR(18)</td>
<td align="left" valign="top">Cursor name</td>
</tr>
<tr>
<td align="center" valign="top">77</td>
<td align="center" valign="top">4D</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Open options</td>
</tr>
<tr>
<td align="center" valign="top">78</td>
<td align="center" valign="top">4E</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Using clause for describe</td>
</tr>
<tr>
<td align="center" valign="top">79</td>
<td align="center" valign="top">4F</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Commitment control</td>
</tr>
<tr>
<td align="center" valign="top">80</td>
<td align="center" valign="top">50</td>
<td align="left" valign="top">CHAR(3)</td>
<td align="left" valign="top">Date format</td>
</tr>
<tr>
<td align="center" valign="top">83</td>
<td align="center" valign="top">53</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Date separator</td>
</tr>
<tr>
<td align="center" valign="top">84</td>
<td align="center" valign="top">54</td>
<td align="left" valign="top">CHAR(3)</td>
<td align="left" valign="top">Time format</td>
</tr>
<tr>
<td align="center" valign="top">87</td>
<td align="center" valign="top">57</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Time separator</td>
</tr>
<tr>
<td align="center" valign="top">88</td>
<td align="center" valign="top">58</td>
<td align="left" valign="top">CHAR(3)</td>
<td align="left" valign="top">Naming option</td>
</tr>
<tr>
<td align="center" valign="top">91</td>
<td align="center" valign="top">5B</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Decimal point</td>
</tr>
<tr>
<td align="center" valign="top">92</td>
<td align="center" valign="top">5C</td>
<td align="left" valign="top">BINARY(2)</td>
<td align="left" valign="top">Blocking factor</td>
</tr>
<tr>
<td align="center" valign="top">94</td>
<td align="center" valign="top">5E</td>
<td align="left" valign="top">BINARY(2)</td>
<td align="left" valign="top">Scrollable option</td>
</tr>
<tr>
<td align="center" valign="top">96</td>
<td align="center" valign="top">60</td>
<td align="left" valign="top">BINARY(2)</td>
<td align="left" valign="top">Position option</td>
</tr>
<tr>
<td align="center" valign="top">98</td>
<td align="center" valign="top">62</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Relative record</td>
</tr>
<tr>
<td align="center" valign="top">102</td>
<td align="center" valign="top">66</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Number of rows to insert</td>
</tr>
<tr>
<td align="center" valign="top">106</td>
<td align="center" valign="top">6A</td>
<td align="left" valign="top">BINARY(2)</td>
<td align="left" valign="top">Statement length</td>
</tr>
<tr>
<td align="center" valign="top">108</td>
<td align="center" valign="top">6C</td>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Statement text</td>
</tr>
</table>
<h3><a name="HDRTMPL21">SQLP0210 Format</a></h3>
<p>The following shows the format of the function template parameter for the
SQLP0210 format. For detailed descriptions of the fields in the table, see <a
href="#HDRTMPLFD">Field Descriptions</a>.</p>
<table border width="80%">
<tr>
<th align="center" valign="bottom" colspan="2">Offset</th>
<th align="left" valign="bottom" rowspan="2">Type</th>
<th align="left" valign="bottom" rowspan="2">Field</th>
</tr>
<tr>
<th align="center" valign="bottom">Dec</th>
<th align="center" valign="bottom">Hex</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">0</td>
<td align="center" valign="top" width="10%">0</td>
<td align="left" valign="top" width="20%">CHAR(1)</td>
<td align="left" valign="top" width="60%">Function</td>
</tr>
<tr>
<td align="center" valign="top">1</td>
<td align="center" valign="top">1</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">SQL package name</td>
</tr>
<tr>
<td align="center" valign="top">11</td>
<td align="center" valign="top">B</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">SQL package library name</td>
</tr>
<tr>
<td align="center" valign="top">21</td>
<td align="center" valign="top">15</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Main program name</td>
</tr>
<tr>
<td align="center" valign="top">31</td>
<td align="center" valign="top">1F</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Main program library name</td>
</tr>
<tr>
<td align="center" valign="top">41</td>
<td align="center" valign="top">29</td>
<td align="left" valign="top">CHAR(18)</td>
<td align="left" valign="top">Statement name</td>
</tr>
<tr>
<td align="center" valign="top">59</td>
<td align="center" valign="top">3B</td>
<td align="left" valign="top">CHAR(18)</td>
<td align="left" valign="top">Cursor name</td>
</tr>
<tr>
<td align="center" valign="top">77</td>
<td align="center" valign="top">4D</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Open options</td>
</tr>
<tr>
<td align="center" valign="top">78</td>
<td align="center" valign="top">4E</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Using clause for describe</td>
</tr>
<tr>
<td align="center" valign="top">79</td>
<td align="center" valign="top">4F</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Commitment control</td>
</tr>
<tr>
<td align="center" valign="top">80</td>
<td align="center" valign="top">50</td>
<td align="left" valign="top">CHAR(3)</td>
<td align="left" valign="top">Date format</td>
</tr>
<tr>
<td align="center" valign="top">83</td>
<td align="center" valign="top">53</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Date separator</td>
</tr>
<tr>
<td align="center" valign="top">84</td>
<td align="center" valign="top">54</td>
<td align="left" valign="top">CHAR(3)</td>
<td align="left" valign="top">Time format</td>
</tr>
<tr>
<td align="center" valign="top">87</td>
<td align="center" valign="top">57</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Time separator</td>
</tr>
<tr>
<td align="center" valign="top">88</td>
<td align="center" valign="top">58</td>
<td align="left" valign="top">CHAR(3)</td>
<td align="left" valign="top">Naming option</td>
</tr>
<tr>
<td align="center" valign="top">91</td>
<td align="center" valign="top">5B</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Decimal point</td>
</tr>
<tr>
<td align="center" valign="top">92</td>
<td align="center" valign="top">5C</td>
<td align="left" valign="top">BINARY(2)</td>
<td align="left" valign="top">Blocking factor</td>
</tr>
<tr>
<td align="center" valign="top">94</td>
<td align="center" valign="top">5E</td>
<td align="left" valign="top">BINARY(2)</td>
<td align="left" valign="top">Scrollable option</td>
</tr>
<tr>
<td align="center" valign="top">96</td>
<td align="center" valign="top">60</td>
<td align="left" valign="top">BINARY(2)</td>
<td align="left" valign="top">Position option</td>
</tr>
<tr>
<td align="center" valign="top">98</td>
<td align="center" valign="top">62</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Relative record</td>
</tr>
<tr>
<td align="center" valign="top">102</td>
<td align="center" valign="top">66</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Number of rows to insert</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">106</td>
<td align="center" valign="top" width="10%">6A</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="60%">Offset to statement text length and
statement text</td>
</tr>
<tr>
<td align="center" valign="top">110</td>
<td align="center" valign="top">6E</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Hex literal option</td>
</tr>
<tr>
<td align="center" valign="top">
<img src="v5r4adelta.gif" alt="Start of change">
111</td>
<td align="center" valign="top">6F</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Statement length type
<img src="v5r4adeltaend.gif" alt="End of change">
</td>
</tr>
<tr>
<td align="center" valign="top">
<img src="v5r4adelta.gif" alt="Start of change">
112</td>
<td align="center" valign="top">70</td>
<td align="left" valign="top">CHAR(16)</td>
<td align="left" valign="top">Reserved
<img src="v5r4adeltaend.gif" alt="End of change">
</td>
</tr>
<tr>
<td align="center" valign="top">
<img src="v5r4adelta.gif" alt="Start of change">
*</td>
<td align="center" valign="top">*</td>
<td align="left" valign="top">BINARY(2) or BINARY(4)</td>
<td align="left" valign="top">Statement length
<img src="v5r4adeltaend.gif" alt="End of change">
</td>
</tr>
<tr>
<td align="center" valign="top">*</td>
<td align="center" valign="top">*</td>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Statement text</td>
</tr>
</table>
<br>
<h3><a name="HDRTMPL3">SQLP0300 Format</a></h3>
<p>The following shows the format of the function template parameter for the
SQLP0300 format. For detailed descriptions of the fields in the table, see <a
href="#HDRTMPLFD">Field Descriptions</a>.</p>
<table border width="80%">
<tr>
<th align="center" valign="bottom" colspan="2">Offset</th>
<th align="left" valign="bottom" rowspan="2">Type</th>
<th align="left" valign="bottom" rowspan="2">Field</th>
</tr>
<tr>
<th align="center" valign="bottom">Dec</th>
<th align="center" valign="bottom">Hex</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">0</td>
<td align="center" valign="top" width="10%">0</td>
<td align="left" valign="top" width="20%">CHAR(1)</td>
<td align="left" valign="top" width="60%">Function</td>
</tr>
<tr>
<td align="center" valign="top">1</td>
<td align="center" valign="top">1</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">SQL package name</td>
</tr>
<tr>
<td align="center" valign="top">11</td>
<td align="center" valign="top">B</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">SQL package library name</td>
</tr>
<tr>
<td align="center" valign="top">21</td>
<td align="center" valign="top">15</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Main program name</td>
</tr>
<tr>
<td align="center" valign="top">31</td>
<td align="center" valign="top">1F</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Main program library name</td>
</tr>
<tr>
<td align="center" valign="top">41</td>
<td align="center" valign="top">29</td>
<td align="left" valign="top">CHAR(18)</td>
<td align="left" valign="top">Statement name</td>
</tr>
<tr>
<td align="center" valign="top">59</td>
<td align="center" valign="top">3B</td>
<td align="left" valign="top">CHAR(18)</td>
<td align="left" valign="top">Cursor name</td>
</tr>
<tr>
<td align="center" valign="top">77</td>
<td align="center" valign="top">4D</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Open options</td>
</tr>
<tr>
<td align="center" valign="top">78</td>
<td align="center" valign="top">4E</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Using clause for describe</td>
</tr>
<tr>
<td align="center" valign="top">79</td>
<td align="center" valign="top">4F</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Commitment control</td>
</tr>
<tr>
<td align="center" valign="top">80</td>
<td align="center" valign="top">50</td>
<td align="left" valign="top">CHAR(3)</td>
<td align="left" valign="top">Date format</td>
</tr>
<tr>
<td align="center" valign="top">83</td>
<td align="center" valign="top">53</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Date separator</td>
</tr>
<tr>
<td align="center" valign="top">84</td>
<td align="center" valign="top">54</td>
<td align="left" valign="top">CHAR(3)</td>
<td align="left" valign="top">Time format</td>
</tr>
<tr>
<td align="center" valign="top">87</td>
<td align="center" valign="top">57</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Time separator</td>
</tr>
<tr>
<td align="center" valign="top">88</td>
<td align="center" valign="top">58</td>
<td align="left" valign="top">CHAR(3)</td>
<td align="left" valign="top">Naming option</td>
</tr>
<tr>
<td align="center" valign="top">91</td>
<td align="center" valign="top">5B</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Decimal point</td>
</tr>
<tr>
<td align="center" valign="top">92</td>
<td align="center" valign="top">5C</td>
<td align="left" valign="top">BINARY(2)</td>
<td align="left" valign="top">Blocking factor</td>
</tr>
<tr>
<td align="center" valign="top">94</td>
<td align="center" valign="top">5E</td>
<td align="left" valign="top">BINARY(2)</td>
<td align="left" valign="top">Scrollable option</td>
</tr>
<tr>
<td align="center" valign="top">96</td>
<td align="center" valign="top">60</td>
<td align="left" valign="top">BINARY(2)</td>
<td align="left" valign="top">Position option</td>
</tr>
<tr>
<td align="center" valign="top">98</td>
<td align="center" valign="top">62</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Relative record</td>
</tr>
<tr>
<td align="center" valign="top">102</td>
<td align="center" valign="top">66</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Number of rows to insert</td>
</tr>
<tr>
<td align="center" valign="top">106</td>
<td align="center" valign="top">6A</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Direct map</td>
</tr>
<tr>
<td align="center" valign="top">107</td>
<td align="center" valign="top">6B</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Reuse SQLDA</td>
</tr>
<tr>
<td align="center" valign="top">108</td>
<td align="center" valign="top">6C</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Name check</td>
</tr>
<tr>
<td align="center" valign="top">109</td>
<td align="center" valign="top">6D</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Use pointers</td>
</tr>
<tr>
<td align="center" valign="top">110</td>
<td align="center" valign="top">6E</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">WITH HOLD</td>
</tr>
<tr>
<td align="center" valign="top">111</td>
<td align="center" valign="top">6F</td>
<td align="left" valign="top">CHAR(18)</td>
<td align="left" valign="top">User-defined field</td>
</tr>
<tr>
<td align="center" valign="top">129</td>
<td align="center" valign="top">81</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Close file name</td>
</tr>
<tr>
<td align="center" valign="top">139</td>
<td align="center" valign="top">8B</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Close library name</td>
</tr>
<tr>
<td align="center" valign="top">149</td>
<td align="center" valign="top">95</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Reopen</td>
</tr>
<tr>
<td align="center" valign="top">150</td>
<td align="center" valign="top">96</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Use performance area</td>
</tr>
<tr>
<td align="center" valign="top">151</td>
<td align="center" valign="top">97</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Reserved
</td>
</tr>
<tr>
<td align="center" valign="top">152</td>
<td align="center" valign="top">98</td>
<td align="left" valign="top">BINARY(2)</td>
<td align="left" valign="top">Maximum Scale</td>
</tr>
<tr>
<td align="center" valign="top">153</td>
<td align="center" valign="top">99</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Maximum Precision</td>
</tr>
<tr>
<td align="center" valign="top">155</td>
<td align="center" valign="top">9B</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Minimum Divide Scale</td>
</tr>
<tr>
<td align="center" valign="top">156</td>
<td align="center" valign="top">9C</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Statement text CCSID</td>
</tr>
<tr>
<td align="center" valign="top">160</td>
<td align="center" valign="top">A0</td>
<td align="left" valign="top">PTR(SYP)</td>
<td align="left" valign="top">SQL-package system pointer</td>
</tr>
<tr>
<td align="center" valign="top">176</td>
<td align="center" valign="top">B0</td>
<td align="left" valign="top">PTR(SYP)</td>
<td align="left" valign="top">Main-program system pointer</td>
</tr>
<tr>
<td align="center" valign="top">192</td>
<td align="center" valign="top">C0</td>
<td align="left" valign="top">BINARY(2)</td>
<td align="left" valign="top">Statement length</td>
</tr>
<tr>
<td align="center" valign="top">194</td>
<td align="center" valign="top">C2</td>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Statement text</td>
</tr>
</table>
<h3><a name="HDRTMPL31">SQLP0310 Format</a></h3>
<p>The following shows the format of the function template parameter for the
SQLP0310 format. For detailed descriptions of the fields in the table, see <a
href="#HDRTMPLFD">Field Descriptions</a>.</p>
<table border width="80%">
<tr>
<th align="center" valign="bottom" colspan="2">Offset</th>
<th align="left" valign="bottom" rowspan="2">Type</th>
<th align="left" valign="bottom" rowspan="2">Field</th>
</tr>
<tr>
<th align="center" valign="bottom">Dec</th>
<th align="center" valign="bottom">Hex</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">0</td>
<td align="center" valign="top" width="10%">0</td>
<td align="left" valign="top" width="20%">CHAR(1)</td>
<td align="left" valign="top" width="60%">Function</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">1</td>
<td align="center" valign="top" width="10%">1</td>
<td align="left" valign="top" width="20%">CHAR(10)</td>
<td align="left" valign="top" width="60%">SQL package name</td>
</tr>
<tr>
<td align="center" valign="top">11</td>
<td align="center" valign="top">B</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">SQL package library name</td>
</tr>
<tr>
<td align="center" valign="top">21</td>
<td align="center" valign="top">15</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Main program name</td>
</tr>
<tr>
<td align="center" valign="top">31</td>
<td align="center" valign="top">1F</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Main program library name</td>
</tr>
<tr>
<td align="center" valign="top">41</td>
<td align="center" valign="top">29</td>
<td align="left" valign="top">CHAR(18)</td>
<td align="left" valign="top">Statement name</td>
</tr>
<tr>
<td align="center" valign="top">59</td>
<td align="center" valign="top">3B</td>
<td align="left" valign="top">CHAR(18)</td>
<td align="left" valign="top">Cursor name</td>
</tr>
<tr>
<td align="center" valign="top">77</td>
<td align="center" valign="top">4D</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Open options</td>
</tr>
<tr>
<td align="center" valign="top">78</td>
<td align="center" valign="top">4E</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Using clause for describe</td>
</tr>
<tr>
<td align="center" valign="top">79</td>
<td align="center" valign="top">4F</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Commitment control</td>
</tr>
<tr>
<td align="center" valign="top">80</td>
<td align="center" valign="top">50</td>
<td align="left" valign="top">CHAR(3)</td>
<td align="left" valign="top">Date format</td>
</tr>
<tr>
<td align="center" valign="top">83</td>
<td align="center" valign="top">53</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Date separator</td>
</tr>
<tr>
<td align="center" valign="top">84</td>
<td align="center" valign="top">54</td>
<td align="left" valign="top">CHAR(3)</td>
<td align="left" valign="top">Time format</td>
</tr>
<tr>
<td align="center" valign="top">87</td>
<td align="center" valign="top">57</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Time separator</td>
</tr>
<tr>
<td align="center" valign="top">88</td>
<td align="center" valign="top">58</td>
<td align="left" valign="top">CHAR(3)</td>
<td align="left" valign="top">Naming option</td>
</tr>
<tr>
<td align="center" valign="top">91</td>
<td align="center" valign="top">5B</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Decimal point</td>
</tr>
<tr>
<td align="center" valign="top">92</td>
<td align="center" valign="top">5C</td>
<td align="left" valign="top">BINARY(2)</td>
<td align="left" valign="top">Blocking factor</td>
</tr>
<tr>
<td align="center" valign="top">94</td>
<td align="center" valign="top">5E</td>
<td align="left" valign="top">BINARY(2)</td>
<td align="left" valign="top">Scrollable option</td>
</tr>
<tr>
<td align="center" valign="top">96</td>
<td align="center" valign="top">60</td>
<td align="left" valign="top">BINARY(2)</td>
<td align="left" valign="top">Position option</td>
</tr>
<tr>
<td align="center" valign="top">98</td>
<td align="center" valign="top">62</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Relative record</td>
</tr>
<tr>
<td align="center" valign="top">102</td>
<td align="center" valign="top">66</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Number of rows to insert</td>
</tr>
<tr>
<td align="center" valign="top">106</td>
<td align="center" valign="top">6A</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Direct map</td>
</tr>
<tr>
<td align="center" valign="top">107</td>
<td align="center" valign="top">6B</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Reuse SQLDA</td>
</tr>
<tr>
<td align="center" valign="top">108</td>
<td align="center" valign="top">6C</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Name check</td>
</tr>
<tr>
<td align="center" valign="top">109</td>
<td align="center" valign="top">6D</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Use pointers</td>
</tr>
<tr>
<td align="center" valign="top">110</td>
<td align="center" valign="top">6E</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">WITH HOLD</td>
</tr>
<tr>
<td align="center" valign="top">111</td>
<td align="center" valign="top">6F</td>
<td align="left" valign="top">CHAR(18)</td>
<td align="left" valign="top">User-defined field</td>
</tr>
<tr>
<td align="center" valign="top">129</td>
<td align="center" valign="top">81</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Close file name</td>
</tr>
<tr>
<td align="center" valign="top">139</td>
<td align="center" valign="top">8B</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Close library name</td>
</tr>
<tr>
<td align="center" valign="top">149</td>
<td align="center" valign="top">95</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Reopen</td>
</tr>
<tr>
<td align="center" valign="top">150</td>
<td align="center" valign="top">96</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Use performance area</td>
</tr>
<tr>
<td align="center" valign="top">151</td>
<td align="center" valign="top">97</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Reserved
</td>
</tr>
<tr>
<td align="center" valign="top">152</td>
<td align="center" valign="top">98</td>
<td align="left" valign="top">BINARY(2)</td>
<td align="left" valign="top">Maximum Scale</td>
</tr>
<tr>
<td align="center" valign="top">153</td>
<td align="center" valign="top">99</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Maximum Precision</td>
</tr>
<tr>
<td align="center" valign="top">155</td>
<td align="center" valign="top">9B</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Minimum Divide Scale</td>
</tr>
<tr>
<td align="center" valign="top">156</td>
<td align="center" valign="top">9C</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Statement text CCSID</td>
</tr>
<tr>
<td align="center" valign="top">160</td>
<td align="center" valign="top">A0</td>
<td align="left" valign="top">PTR(SYP)</td>
<td align="left" valign="top">SQL-package system pointer</td>
</tr>
<tr>
<td align="center" valign="top">176</td>
<td align="center" valign="top">B0</td>
<td align="left" valign="top">PTR(SYP)</td>
<td align="left" valign="top">Main-program system pointer</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">192</td>
<td align="center" valign="top" width="10%">C0</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="60%">Offset to statement text length and
statement text</td>
</tr>
<tr>
<td align="center" valign="top">196</td>
<td align="center" valign="top">C4</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Hex literal option</td>
</tr>
<tr>
<td align="center" valign="top">
<img src="v5r4adelta.gif" alt="Start of change">
197</td>
<td align="center" valign="top">C5</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Statement length type
<img src="v5r4adeltaend.gif" alt="End of change">
</td>
</tr>
<tr>
<td align="center" valign="top">
<img src="v5r4bdelta.gif" alt="Start of change">
198</td>
<td align="center" valign="top">C6</td>
<td align="left" valign="top">BINARY(2)</td>
<td align="left" valign="top">Extended User-defined field length
<img src="v5r4bdeltaend.gif" alt="End of change">
</td>
</tr>
<tr>
<td align="center" valign="top">
<img src="v5r4bdelta.gif" alt="Start of change">
200</td>
<td align="center" valign="top">C8</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to Extended User-defined field
<img src="v5r4bdeltaend.gif" alt="End of change">
</td>
</tr>
<tr>
<td align="center" valign="top">
<img src="v5r4bdelta.gif" alt="Start of change">
204</td>
<td align="center" valign="top">CC</td>
<td align="left" valign="top">CHAR(4)</td>
<td align="left" valign="top">Reserved
<img src="v5r4bdeltaend.gif" alt="End of change">
</td>
</tr>
<tr>
<td align="center" valign="top">
<img src="v5r4adelta.gif" alt="Start of change">
*</td>
<td align="center" valign="top">*</td>
<td align="left" valign="top">BINARY(2) or BINARY(4)</td>
<td align="left" valign="top">Statement length
<img src="v5r4adeltaend.gif" alt="End of change">
</td>
</tr>
<tr>
<td align="center" valign="top">*</td>
<td align="center" valign="top">*</td>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Statement text</td>
</tr>
</table>
<br>
<h3><a name="HDRTMPL4">SQLP0400 Format</a></h3>
<p>The following shows the format of the function template parameter for the
SQLP0400 format. For detailed descriptions of the fields in the table, see <a
href="#HDRTMPLFD">Field Descriptions</a>.</p>
<table border width="80%">
<tr>
<th align="center" valign="bottom" colspan="2">Offset</th>
<th align="left" valign="bottom" rowspan="2">Type</th>
<th align="left" valign="bottom" rowspan="2">Field</th>
</tr>
<tr>
<th align="center" valign="bottom">Dec</th>
<th align="center" valign="bottom">Hex</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">0</td>
<td align="center" valign="top" width="10%">0</td>
<td align="left" valign="top" width="20%">CHAR(1)</td>
<td align="left" valign="top" width="60%">Function</td>
</tr>
<tr>
<td align="center" valign="top">1</td>
<td align="center" valign="top">1</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">SQL package name</td>
</tr>
<tr>
<td align="center" valign="top">11</td>
<td align="center" valign="top">B</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">SQL package library name</td>
</tr>
<tr>
<td align="center" valign="top">21</td>
<td align="center" valign="top">15</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Main program name</td>
</tr>
<tr>
<td align="center" valign="top">31</td>
<td align="center" valign="top">1F</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Main program library name</td>
</tr>
<tr>
<td align="center" valign="top">41</td>
<td align="center" valign="top">29</td>
<td align="left" valign="top">CHAR(18)</td>
<td align="left" valign="top">Statement name</td>
</tr>
<tr>
<td align="center" valign="top">59</td>
<td align="center" valign="top">3B</td>
<td align="left" valign="top">CHAR(18)</td>
<td align="left" valign="top">Cursor name</td>
</tr>
<tr>
<td align="center" valign="top">77</td>
<td align="center" valign="top">4D</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Open options</td>
</tr>
<tr>
<td align="center" valign="top">78</td>
<td align="center" valign="top">4E</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Using clause for describe</td>
</tr>
<tr>
<td align="center" valign="top">79</td>
<td align="center" valign="top">4F</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Commitment control</td>
</tr>
<tr>
<td align="center" valign="top">80</td>
<td align="center" valign="top">50</td>
<td align="left" valign="top">CHAR(3)</td>
<td align="left" valign="top">Date format</td>
</tr>
<tr>
<td align="center" valign="top">83</td>
<td align="center" valign="top">53</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Date separator</td>
</tr>
<tr>
<td align="center" valign="top">84</td>
<td align="center" valign="top">54</td>
<td align="left" valign="top">CHAR(3)</td>
<td align="left" valign="top">Time format</td>
</tr>
<tr>
<td align="center" valign="top">87</td>
<td align="center" valign="top">57</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Time separator</td>
</tr>
<tr>
<td align="center" valign="top">88</td>
<td align="center" valign="top">58</td>
<td align="left" valign="top">CHAR(3)</td>
<td align="left" valign="top">Naming option</td>
</tr>
<tr>
<td align="center" valign="top">91</td>
<td align="center" valign="top">5B</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Decimal point</td>
</tr>
<tr>
<td align="center" valign="top">92</td>
<td align="center" valign="top">5C</td>
<td align="left" valign="top">BINARY(2)</td>
<td align="left" valign="top">Blocking factor</td>
</tr>
<tr>
<td align="center" valign="top">94</td>
<td align="center" valign="top">5E</td>
<td align="left" valign="top">BINARY(2)</td>
<td align="left" valign="top">Scrollable option</td>
</tr>
<tr>
<td align="center" valign="top">96</td>
<td align="center" valign="top">60</td>
<td align="left" valign="top">BINARY(2)</td>
<td align="left" valign="top">Position option</td>
</tr>
<tr>
<td align="center" valign="top">98</td>
<td align="center" valign="top">62</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Relative record</td>
</tr>
<tr>
<td align="center" valign="top">102</td>
<td align="center" valign="top">66</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Number of rows to insert</td>
</tr>
<tr>
<td align="center" valign="top">106</td>
<td align="center" valign="top">6A</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Direct map</td>
</tr>
<tr>
<td align="center" valign="top">107</td>
<td align="center" valign="top">6B</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Reuse SQLDA</td>
</tr>
<tr>
<td align="center" valign="top">108</td>
<td align="center" valign="top">6C</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Name check</td>
</tr>
<tr>
<td align="center" valign="top">109</td>
<td align="center" valign="top">6D</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Use pointers</td>
</tr>
<tr>
<td align="center" valign="top">110</td>
<td align="center" valign="top">6E</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">WITH HOLD</td>
</tr>
<tr>
<td align="center" valign="top">111</td>
<td align="center" valign="top">6F</td>
<td align="left" valign="top">CHAR(18)</td>
<td align="left" valign="top">User-defined field</td>
</tr>
<tr>
<td align="center" valign="top">129</td>
<td align="center" valign="top">81</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Close file name</td>
</tr>
<tr>
<td align="center" valign="top">139</td>
<td align="center" valign="top">8B</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Close library name</td>
</tr>
<tr>
<td align="center" valign="top">149</td>
<td align="center" valign="top">95</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Reopen</td>
</tr>
<tr>
<td align="center" valign="top">150</td>
<td align="center" valign="top">96</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Use performance area</td>
</tr>
<tr>
<td align="center" valign="top">151</td>
<td align="center" valign="top">97</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="center" valign="top">152</td>
<td align="center" valign="top">98</td>
<td align="left" valign="top">BINARY(2)</td>
<td align="left" valign="top">Maximum Scale</td>
</tr>
<tr>
<td align="center" valign="top">153</td>
<td align="center" valign="top">99</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Maximum Precision</td>
</tr>
<tr>
<td align="center" valign="top">155</td>
<td align="center" valign="top">9B</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Minimum Divide Scale</td>
</tr>
<tr>
<td align="center" valign="top">156</td>
<td align="center" valign="top">9C</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Statement text CCSID</td>
</tr>
<tr>
<td align="center" valign="top">160</td>
<td align="center" valign="top">A0</td>
<td align="left" valign="top">PTR(SYP)</td>
<td align="left" valign="top">SQL-package system pointer</td>
</tr>
<tr>
<td align="center" valign="top">176</td>
<td align="center" valign="top">B0</td>
<td align="left" valign="top">PTR(SYP)</td>
<td align="left" valign="top">Main-program system pointer</td>
</tr>
<tr>
<td align="center" valign="top">192</td>
<td align="center" valign="top">C0</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Sort sequence table name</td>
</tr>
<tr>
<td align="center" valign="top">202</td>
<td align="center" valign="top">CA</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Sort sequence library name</td>
</tr>
<tr>
<td align="center" valign="top">212</td>
<td align="center" valign="top">D4</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Language identifier</td>
</tr>
<tr>
<td align="center" valign="top">222</td>
<td align="center" valign="top">DE</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Allow copy of data</td>
</tr>
<tr>
<td align="center" valign="top">223</td>
<td align="center" valign="top">DF</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Allow blocking</td>
</tr>
<tr>
<td align="center" valign="top">224</td>
<td align="center" valign="top">E0</td>
<td align="left" valign="top">BINARY(2)</td>
<td align="left" valign="top">Statement length</td>
</tr>
<tr>
<td align="center" valign="top">226</td>
<td align="center" valign="top">E2</td>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Statement text</td>
</tr>
</table>
<h3><a name="HDRTMPL41">SQLP0410 Format</a></h3>
<p>The following shows the format of the function template parameter for the
SQLP0410 format. For detailed descriptions of the fields in the table, see <a
href="#HDRTMPLFD">Field Descriptions</a>.</p>
<table border width="80%">
<tr>
<th align="center" valign="bottom" colspan="2">Offset</th>
<th align="left" valign="bottom" rowspan="2">Type</th>
<th align="left" valign="bottom" rowspan="2">Field</th>
</tr>
<tr>
<th align="center" valign="bottom">Dec</th>
<th align="center" valign="bottom">Hex</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">0</td>
<td align="center" valign="top" width="10%">0</td>
<td align="left" valign="top" width="20%">CHAR(1)</td>
<td align="left" valign="top" width="60%">Function</td>
</tr>
<tr>
<td align="center" valign="top">1</td>
<td align="center" valign="top">1</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">SQL package name</td>
</tr>
<tr>
<td align="center" valign="top">11</td>
<td align="center" valign="top">B</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">SQL package library name</td>
</tr>
<tr>
<td align="center" valign="top">21</td>
<td align="center" valign="top">15</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Main program name</td>
</tr>
<tr>
<td align="center" valign="top">31</td>
<td align="center" valign="top">1F</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Main program library name</td>
</tr>
<tr>
<td align="center" valign="top">41</td>
<td align="center" valign="top">29</td>
<td align="left" valign="top">CHAR(18)</td>
<td align="left" valign="top">Statement name</td>
</tr>
<tr>
<td align="center" valign="top">59</td>
<td align="center" valign="top">3B</td>
<td align="left" valign="top">CHAR(18)</td>
<td align="left" valign="top">Cursor name</td>
</tr>
<tr>
<td align="center" valign="top">77</td>
<td align="center" valign="top">4D</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Open options</td>
</tr>
<tr>
<td align="center" valign="top">78</td>
<td align="center" valign="top">4E</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Using clause for describe</td>
</tr>
<tr>
<td align="center" valign="top">79</td>
<td align="center" valign="top">4F</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Commitment control</td>
</tr>
<tr>
<td align="center" valign="top">80</td>
<td align="center" valign="top">50</td>
<td align="left" valign="top">CHAR(3)</td>
<td align="left" valign="top">Date format</td>
</tr>
<tr>
<td align="center" valign="top">83</td>
<td align="center" valign="top">53</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Date separator</td>
</tr>
<tr>
<td align="center" valign="top">84</td>
<td align="center" valign="top">54</td>
<td align="left" valign="top">CHAR(3)</td>
<td align="left" valign="top">Time format</td>
</tr>
<tr>
<td align="center" valign="top">87</td>
<td align="center" valign="top">57</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Time separator</td>
</tr>
<tr>
<td align="center" valign="top">88</td>
<td align="center" valign="top">58</td>
<td align="left" valign="top">CHAR(3)</td>
<td align="left" valign="top">Naming option</td>
</tr>
<tr>
<td align="center" valign="top">91</td>
<td align="center" valign="top">5B</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Decimal point</td>
</tr>
<tr>
<td align="center" valign="top">92</td>
<td align="center" valign="top">5C</td>
<td align="left" valign="top">BINARY(2)</td>
<td align="left" valign="top">Blocking factor</td>
</tr>
<tr>
<td align="center" valign="top">94</td>
<td align="center" valign="top">5E</td>
<td align="left" valign="top">BINARY(2)</td>
<td align="left" valign="top">Scrollable option</td>
</tr>
<tr>
<td align="center" valign="top">96</td>
<td align="center" valign="top">60</td>
<td align="left" valign="top">BINARY(2)</td>
<td align="left" valign="top">Position option</td>
</tr>
<tr>
<td align="center" valign="top">98</td>
<td align="center" valign="top">62</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Relative record</td>
</tr>
<tr>
<td align="center" valign="top">102</td>
<td align="center" valign="top">66</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Number of rows to insert</td>
</tr>
<tr>
<td align="center" valign="top">106</td>
<td align="center" valign="top">6A</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Direct map</td>
</tr>
<tr>
<td align="center" valign="top">107</td>
<td align="center" valign="top">6B</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Reuse SQLDA</td>
</tr>
<tr>
<td align="center" valign="top">108</td>
<td align="center" valign="top">6C</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Name check</td>
</tr>
<tr>
<td align="center" valign="top">109</td>
<td align="center" valign="top">6D</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Use pointers</td>
</tr>
<tr>
<td align="center" valign="top">110</td>
<td align="center" valign="top">6E</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">WITH HOLD</td>
</tr>
<tr>
<td align="center" valign="top">111</td>
<td align="center" valign="top">6F</td>
<td align="left" valign="top">CHAR(18)</td>
<td align="left" valign="top">User-defined field</td>
</tr>
<tr>
<td align="center" valign="top">129</td>
<td align="center" valign="top">81</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Close file name</td>
</tr>
<tr>
<td align="center" valign="top">139</td>
<td align="center" valign="top">8B</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Close library name</td>
</tr>
<tr>
<td align="center" valign="top">149</td>
<td align="center" valign="top">95</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Reopen</td>
</tr>
<tr>
<td align="center" valign="top">150</td>
<td align="center" valign="top">96</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Use performance area</td>
</tr>
<tr>
<td align="center" valign="top">151</td>
<td align="center" valign="top">97</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="center" valign="top">152</td>
<td align="center" valign="top">98</td>
<td align="left" valign="top">BINARY(2)</td>
<td align="left" valign="top">Maximum Scale</td>
</tr>
<tr>
<td align="center" valign="top">153</td>
<td align="center" valign="top">99</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Maximum Precision</td>
</tr>
<tr>
<td align="center" valign="top">155</td>
<td align="center" valign="top">9B</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Minimum Divide Scale</td>
</tr>
<tr>
<td align="center" valign="top">156</td>
<td align="center" valign="top">9C</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Statement text CCSID</td>
</tr>
<tr>
<td align="center" valign="top">160</td>
<td align="center" valign="top">A0</td>
<td align="left" valign="top">PTR(SYP)</td>
<td align="left" valign="top">SQL-package system pointer</td>
</tr>
<tr>
<td align="center" valign="top">176</td>
<td align="center" valign="top">B0</td>
<td align="left" valign="top">PTR(SYP)</td>
<td align="left" valign="top">Main-program system pointer</td>
</tr>
<tr>
<td align="center" valign="top">192</td>
<td align="center" valign="top">C0</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Sort sequence table name</td>
</tr>
<tr>
<td align="center" valign="top">202</td>
<td align="center" valign="top">CA</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Sort sequence library name</td>
</tr>
<tr>
<td align="center" valign="top">212</td>
<td align="center" valign="top">D4</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Language identifier</td>
</tr>
<tr>
<td align="center" valign="top">222</td>
<td align="center" valign="top">DE</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Allow copy of data</td>
</tr>
<tr>
<td align="center" valign="top">223</td>
<td align="center" valign="top">DF</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Allow blocking</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">224</td>
<td align="center" valign="top" width="10%">E0</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="60%">Offset to statement text length and
statement text</td>
</tr>
<tr>
<td align="center" valign="top">228</td>
<td align="center" valign="top">E4</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Hex literal option</td>
</tr>
<tr>
<td align="center" valign="top">
<img src="v5r4adelta.gif" alt="Start of change">
229</td>
<td align="center" valign="top">E5</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Statement length type
<img src="v5r4adeltaend.gif" alt="End of change">
</td>
</tr>
<tr>
<td align="center" valign="top">
<img src="v5r4bdelta.gif" alt="Start of change">
230</td>
<td align="center" valign="top">E6</td>
<td align="left" valign="top">BINARY(2)</td>
<td align="left" valign="top">Extended User-defined field length
<img src="v5r4bdeltaend.gif" alt="End of change">
</td>
</tr>
<tr>
<td align="center" valign="top">
<img src="v5r4bdelta.gif" alt="Start of change">
232</td>
<td align="center" valign="top">E8</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to Extended User-defined field
<img src="v5r4bdeltaend.gif" alt="End of change">
</td>
</tr>
<tr>
<td align="center" valign="top">
<img src="v5r4bdelta.gif" alt="Start of change">
236</td>
<td align="center" valign="top">EC</td>
<td align="left" valign="top">CHAR(4)</td>
<td align="left" valign="top">Reserved
<img src="v5r4bdeltaend.gif" alt="End of change">
</td>
</tr>
<tr>
<td align="center" valign="top">
<img src="v5r4adelta.gif" alt="Start of change">
*</td>
<td align="center" valign="top">*</td>
<td align="left" valign="top">BINARY(2) or BINARY(4)</td>
<td align="left" valign="top">Statement length
<img src="v5r4adeltaend.gif" alt="End of change">
</td>
</tr>
<tr>
<td align="center" valign="top">*</td>
<td align="center" valign="top">*</td>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Statement text</td>
</tr>
</table>
<br>
<br>
<h3><a name="HDRTMPL5">SQLP0500 Format</a></h3>
<p>The following shows the format of the function template parameter for the
SQLP0500 format. For detailed descriptions of the fields in the table, see <a
href="#HDRTMPLFD">Field Descriptions</a>.</p>
<table border width="80%">
<tr>
<th align="center" valign="bottom" colspan="2">Offset</th>
<th align="left" valign="bottom" rowspan="2">Type</th>
<th align="left" valign="bottom" rowspan="2">Field</th>
</tr>
<tr>
<th align="center" valign="bottom">Dec</th>
<th align="center" valign="bottom">Hex</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">0</td>
<td align="center" valign="top" width="10%">0</td>
<td align="left" valign="top" width="20%">CHAR(1)</td>
<td align="left" valign="top" width="60%">Function</td>
</tr>
<tr>
<td align="center" valign="top">1</td>
<td align="center" valign="top">1</td>
<td align="left" valign="top">CHAR(3)</td>
<td align="left" valign="top">Date format</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="center" valign="top">4</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Date separator</td>
</tr>
<tr>
<td align="center" valign="top">5</td>
<td align="center" valign="top">5</td>
<td align="left" valign="top">CHAR(3)</td>
<td align="left" valign="top">Time format</td>
</tr>
<tr>
<td align="center" valign="top">8</td>
<td align="center" valign="top">8</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Time separator</td>
</tr>
<tr>
<td align="center" valign="top">9</td>
<td align="center" valign="top">9</td>
<td align="left" valign="top">CHAR(3)</td>
<td align="left" valign="top">Naming option</td>
</tr>
<tr>
<td align="center" valign="top">12</td>
<td align="center" valign="top">C</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Decimal point</td>
</tr>
<tr>
<td align="center" valign="top">13</td>
<td align="center" valign="top">D</td>
<td align="left" valign="top">CHAR(3)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="center" valign="top">16</td>
<td align="center" valign="top">10</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Diagnostic information CCSID</td>
</tr>
<tr>
<td align="center" valign="top">20</td>
<td align="center" valign="top">14</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Condition number</td>
</tr>
<tr>
<td align="center" valign="top">24</td>
<td align="center" valign="top">18</td>
<td align="left" valign="top">CHAR(4)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="center" valign="top">28</td>
<td align="center" valign="top">1C</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to statement, condition, or connection information item types list</td>
</tr>
<tr>
<td align="center" valign="top">32</td>
<td align="center" valign="top">20</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Number of statement, condition, or connection information items</td>
</tr>
<tr>
<td align="center" valign="top">*</td>
<td align="center" valign="top">*</td>
<td align="left" valign="top">ARRAY(*) of BINARY(4)</td>
<td align="left" valign="top">Statement, condition, or connection information item types list</td>
</tr>
</table>
<br>
<br>
<h3><a name="HDRTMPLFD">Field Descriptions</a></h3>
<p><strong>Allow copy of data.</strong> Whether a copy of the data can be used
in a SELECT statement. The valid values follow:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td valign="top"><em>A</em></td>
<td valign="top">A copy of the data is used only when
necessary.</td>
</tr>
<tr>
<td valign="top"><em>S</em></td>
<td valign="top">The system determines whether to use the data retrieved
directly from the database or to use a copy of the data. The decision is based
on which method provides the best performance. If commitment control level is C
or S and the Allow Blocking field is not L, or if the commitment control level
is A or R, then a copy of the data is used only when it is necessary to run the
query.</td>
</tr>
<tr>
<td valign="top"><em>N</em></td>
<td valign="top">A copy of the data is not allowed. If a temporary copy of the
data is required to perform the query, an error message is returned.</td>
</tr>
</table>
<br>
<p>The allow copy of data value is required for function 1. It is ignored for
other functions.</p>
<p><strong>Allow blocking.</strong> Whether the database manager can use record
blocking, and the extent to which blocking can be used for read-only cursors.
The valid values follow:</p>
<table width="100%">
<tr>
<td width="5%" valign="top"><em>S</em></td>
<td width="95%" valign="top">*READ:<br>
Records are blocked for read-only retrieval of data for cursors the following
conditions are met:<br>
<ul>
<li>N is specified for the commitment control field, which indicates that
commitment control is not used.</li>
<li>The cursor is declared with a FOR FETCH ONLY clause or there are no dynamic
statements that could run a positioned UPDATE or DELETE statement for the
cursor.</li>
</ul>
</td>
</tr>
<tr>
<td valign="top"></td>
<td valign="top">You can specify S to improve the overall performance of
queries that meet the above conditions and retrieve a large number of
records.<br>
</td>
</tr>
<tr>
<td valign="top"><em>F</em></td>
<td valign="top">*NONE:<br>
Rows are not blocked for retrieval of data for cursors. If you specify F, the
following occurs:<br>
<ul>
<li>Guarantees that the data retrieved is current.</li>
<li>May reduce the amount of time required to retrieve the first row of data
for a query.</li>
<li>Stops the database manager from retrieving a block of data rows that is not
used by the program when only the first few rows of a query are retrieved
before the query is closed.</li>
<li>Can degrade the overall performance of a query that retrieves a large
number of rows.</li>
</ul>
</td>
</tr>
<tr>
<td valign="top"><em>L</em></td>
<td valign="top">*ALLREAD:<br>
Rows are blocked for read-only cursors if N or C is specified on the
commitment control field. All cursors in a program that are not explicitly able
to be updated are opened for read-only processing even though EXECUTE or
EXECUTE IMMEDIATE statements may be in the program.<br>
If you specify L, the following occurs:<br>
<ul>
<li>Allows record blocking under commitment control level C in addition to the
blocking allowed for S.</li>
<li>Can improve the performance of almost all read-only cursors in programs,
but limits queries in the following ways:
<ul>
<li>A ROLLBACK statement or ROLLBACK HOLD SQL statement does not reposition a
read-only cursor when L is specified.</li>
<li>Dynamic running of a positioned UPDATE or DELETE statement (for example,
using EXECUTE IMMEDIATE) cannot be used to update a row in a cursor unless the
DECLARE statement for the cursor includes the FOR UPDATE clause.</li>
</ul>
</li>
</ul>
</td>
</tr>
</table>
<br>
<p>The allow blocking value is required for function 1. It is ignored for other
functions.</p>
<p><strong>Blocking factor.</strong> The number of records to be passed on a
blocked FETCH request. The same number should be used on the OPEN and the FETCH
request. The blocking factor is required for functions 4 and 5. It is ignored
for other functions.</p>
<p><strong>Close file name.</strong> The name of the file for which all
pseudo-closed open data paths should be closed. The file name must be the
system file name. It cannot be an SQL long table name. If all pseudo-closed
open data paths for the job are to be closed, the close file name and the close
library name should be specified as *ALL. The close file name is required for
function B. It is ignored for other functions.</p>
<p>If the close library name is *NUMBER or *THRESHOLD, then the first 4 bytes
of close file name should contain an integer value. For *NUMBER, the value
indicates the number of pseudo-closed cursors to close. For *THRESHOLD, the
value indicates the threshold of pseudo-closed cursors that should remain
following the closing of pseudo-closed cursors.</p>
<p><strong>Close library name.</strong> The library of the close file name. If
the close file name is specified as *ALL, the close library name should be *ALL
as well. The close library name is required for function B. It is ignored for
other functions.</p>
<p>*NUMBER indicates to close a specified number of pseudo-closed cursors.
*THRESHOLD indicates to continue closing pseudo-closed cursors until a
specified threshold is reached.</p>
<p><strong>Commitment control.</strong> The commit level to be used. The
possible values are:</p>
<table width="100%">
<tr>
<td width="5%" valign="top"><em>C</em></td>
<td width="95%" valign="top">*CHG</td>
</tr>
<tr>
<td valign="top"><em>S</em></td>
<td valign="top">*CS</td>
</tr>
<tr>
<td valign="top"><em>A</em></td>
<td valign="top">*ALL</td>
</tr>
<tr>
<td valign="top"><em>N</em></td>
<td valign="top">*NONE</td>
</tr>
</table>
<br>
<p>The commitment control value is required for function 1. It is ignored for
other functions.</p>
<p><strong>Condition number.</strong> The number
that identifies a condition for which diagnostic information items are to be
retrieved from the SQL diagnostic area. See <a href="#HDRDINFKEY2">Key Values and Data Types of Condition Diagnostic Information Items</a> for a list of the keys of the condition information item types that may be retrieved for the condition. See <a href="#HDRDINFKEY3">Key Values and Data Types of Connection Diagnostic Information Items</a> for a list of the keys of the connection information item types that may be retrieved for the condition.</p>
<p><strong>Cursor name.</strong> The name of the SQL cursor. The cursor name is
required for functions 4, 5, 6, and 8. It is ignored for other functions.</p>
<p><strong>Date format.</strong> The format used when accessing date result
columns. All output date fields are returned in the format you specify. For
input date strings, the value you specify is used to determine whether the date
is a valid format. The valid values are:</p>
<table width="100%">
<tr>
<td width="10%" valign="top"><em>USA</em></td>
<td width="90%" valign="top">IBM USA standard (mm.dd.yyyy, hh:mm a.m., hh:mm
p.m.)</td>
</tr>
<tr>
<td valign="top"><em>ISO</em></td>
<td valign="top">International Standards Organization (yyyy-mm-dd,
hh.mm.ss)</td>
</tr>
<tr>
<td valign="top"><em>EUR</em></td>
<td valign="top">IBM European Standard (dd.mm.yyyy, hh.mm.ss)</td>
</tr>
<tr>
<td valign="top"><em>JIS</em></td>
<td valign="top">Japanese Industrial standard Christian Era (yyyy-mm-dd,
hh:mm:ss)</td>
</tr>
<tr>
<td valign="top"><em>MDY</em></td>
<td valign="top">Month/day/year (mm/dd/yy)</td>
</tr>
<tr>
<td valign="top"><em>DMY</em></td>
<td valign="top">Day/month/year (dd/mm/yy)</td>
</tr>
<tr>
<td valign="top"><em>YMD</em></td>
<td valign="top">Year/month/day (yy/mm/dd)</td>
</tr>
<tr>
<td valign="top"><em>JUL</em></td>
<td valign="top">Julian (yy/ddd)</td>
</tr>
</table>
<br>
<p>The date format is required for function 1. For function D, it must be set to X'000000'. It is ignored for other functions.</p>
<p><strong>Date separator.</strong> The separator used when accessing date
result columns. The valid values are:</p>
<table width="100%">
<tr>
<td width="10%" valign="top"><em>/</em></td>
<td width="90%" valign="top">Slash separator</td>
</tr>
<tr>
<td valign="top"><em>.</em></td>
<td valign="top">Period separator</td>
</tr>
<tr>
<td valign="top"><em>,</em></td>
<td valign="top">Comma separator</td>
</tr>
<tr>
<td valign="top"><em>-</em></td>
<td valign="top">Dash separator</td>
</tr>
<tr>
<td valign="top"><em>blank</em></td>
<td valign="top">Blank separator</td>
</tr>
</table>
<br>
<p>The date separator is required for function 1. For function D, it must be set to X'00'. It is ignored for other functions.</p>
<p><strong>Decimal point.</strong> The decimal point for numeric constants in
SQL statements. The valid values are:</p>
<table width="100%">
<tr>
<td width="5%" valign="top"><em>.</em></td>
<td width="95%" valign="top">Period separator</td>
</tr>
<tr>
<td valign="top"><em>,</em></td>
<td valign="top">Comma separator</td>
</tr>
</table>
<br>
<p>The decimal point is required for function 1. For function D, it must be set to X'00'. It is ignored for other functions.</p>
<p><strong>Diagnostic information CCSID.</strong> CCSID of any CHAR data that is returned for the statement, condition, or connection diagnostic information. If 0 is specified, the data returned will be in the default job CCSID.</p>
<p><strong>Direct map.</strong> Whether the data that is retrieved is to be
moved directly into the user area. The possible values follow:</p>
<table width="100%" cellpadding="5">
<tr>
<td width="5%" valign="top"><em>Y</em></td>
<td width="95%" valign="top">Map the data to the user's area by using a single
move operation. SQL obtains the address for the beginning of the user's area
from the first SQLDATA entry of the SQLDA. The SQLDA must be set up correctly
for all fields in the results list in case the direct map cannot be
performed.</td>
</tr>
<tr>
<td valign="top"><em>N</em></td>
<td valign="top">Use the SQLDA definitions to map the data to the user's
area.</td>
</tr>
</table>
<br>
<p>The direct map field is optional for function 5. The default value for
direct map is N. It is ignored for all other functions.</p>
<img src="v5r4bdelta.gif" alt="Start of change">
<p><strong>Extended User-defined field length.</strong> The length of the
extended user-defined field. The maximum length supported is 100.
When the length contains zero, the user-defined
field will be used instead of the extended user-defined field.
</p>
<img src="v5r4bdeltaend.gif" alt="End of change">
<p><strong>Function.</strong> The function being requested. The possible values
follow:</p>
<table width="100%">
<tr>
<td width="5%" valign="top"><em>1</em></td>
<td width="95%" valign="top">Build a new package into the specified
library.</td>
</tr>
<tr>
<td valign="top"><em>2</em></td>
<td valign="top">Prepare a statement into the specified package.</td>
</tr>
<tr>
<td valign="top"><em>3</em></td>
<td valign="top">Execute a statement from the specified package.</td>
</tr>
<tr>
<td valign="top"><em>4</em></td>
<td valign="top">Open a cursor defined by a prepared statement in a
package.</td>
</tr>
<tr>
<td valign="top"><em>5</em></td>
<td valign="top">Fetch data from an open cursor.</td>
</tr>
<tr>
<td valign="top"><em>6</em></td>
<td valign="top">Close an open cursor.</td>
</tr>
<tr>
<td valign="top"><em>7</em></td>
<td valign="top">Describe a prepared statement in a package.</td>
</tr>
<tr>
<td valign="top"><em>8</em></td>
<td valign="top">Close an open cursor and delete the open data path</td>
</tr>
<tr>
<td valign="top"><em>9</em></td>
<td valign="top">Prepare and describe in one step.</td>
</tr>
<tr>
<td valign="top"><em>A</em></td>
<td valign="top">Inquire as to whether or not a specified statement has been
prepared in the specified package.</td>
</tr>
<tr>
<td valign="top"><em>B</em></td>
<td valign="top">Actually close pseudo-closed cursors.
<!--v5r1 dcr 98321 - validate package name and support delete --></td>
</tr>
<tr>
<td valign="top"><em>C</em></td>
<td valign="top">Delete the specified package.</td>
</tr>
<tr>
<td valign="top"><em>D</em></td>
<td valign="top">Retrieve SQL diagnostic information. This function is only valid for <a href="#HDRTMPL5">SQLP0500 Format</a>.</td>
</tr>
</table>
<br>
<p><strong>Hex literal option.</strong> Option which allows Hex literals to be
treated as binary data instead of treating them as character data.
The Hex literal option is used for function 1.
It is ignored for all other functions. The valid values follow:</p>
<table width="100%">
<tr>
<td width="5%" valign="top"><em>0</em></td>
<td width="95%" valign="top">Treat Hex literals as character data.
The default value is 0.</td>
</tr>
<tr>
<td valign="top"><em>1</em></td>
<td valign="top">Treat Hex literals as binary data.</td>
</tr>
</table>
<br>
<p><strong>Language identifier.</strong> The language identifier to be used
when *LANGIDUNQ or *LANGIDSHR is specified for the sort sequence table name.
The valid values follow:</p>
<table width="100%">
<tr>
<td width="15%" valign="top"><em>*JOB</em></td>
<td width="85%" valign="top">The language identifier for the job is retrieved
when the package is created.</td>
</tr>
<tr>
<td valign="top"><em>*JOBRUN</em></td>
<td valign="top">The language identifier for the job is retrieved when the
program is run.</td>
</tr>
<tr>
<td valign="top"><em>language-id</em></td>
<td valign="top">The language identifier to be used by the program.</td>
</tr>
</table>
<br>
<p>The language identifier value is required for function 1 when a sort
sequence value of *LNGIDUNQ or *LNGIDSHR is specified. It is ignored for other
functions.</p>
<p><strong>Main program library name.</strong> The library of the main
program.</p>
<p><strong>Main program name.</strong> The name of the program representing the
top program in the SQL application. When this program completes, all cursors
are closed and the SQL environment goes away. This program must be on the stack
or an error will occur (SQL0901). The main program name is required for all
functions except 1. This allows you to control the boundary of the application.
If you want to scope to an activation group, as opposed to the main program
name, this can be done by specifying *ENDACTGRP for the main program name. This
special value is only allowed for function 1. For all other functions, specify
the actual main program name.</p>
<p><strong>Main-program system pointer.</strong> A system pointer that has been
resolved to point to the main program. This field is ignored if the use
pointers field has not been set to Y. If the use pointers field is specified,
this field is used in place of the main program name and main program library
name.</p>
<p>
<strong>Maximum Precision.</strong> Specifies the maximum precision
(length) that should be used for decimal operations.
The possible values follow:</p>
<table width="100%">
<tr>
<td width="5%" valign="top"><em>1</em></td>
<td width="95%" valign="top">Maximum precision is 31.</td>
</tr>
<tr>
<td valign="top"><em>2</em></td>
<td valign="top">Maximum precision is 63.</td>
</tr>
</table>
<br>
<p>The Maximum Precision is optional for function 1.
The default is 1. It is ignored for all other functions.</p>
<p><strong>Maximum Scale.</strong> Specifies the maximum scale
(number of decimal positions to the right of the decimal point)
that should be used for decimal operations. The value can range
from 0 to the Maximum Precision.</p>
<p>The Maximum Scale is optional for function 1.
The default is 31. It is ignored for all other functions.</p>
<p><strong>Minimum Divide Scale.</strong> Specifies the minimum
divide scale (number of decimal positions to the right of the
decimal point) that should be used for both intermediary and
result data types. The value can range from '0' to '9' and
may not exceed the Maximum Scale.</p>
<p>The Minimum Divide Scale is optional for function 1.
The default is '0'. It is ignored for all other functions.
</p>
<p><strong>Name check.</strong> Whether the statement names and cursor names
are to be completely checked for valid name syntax. The possible values
follow:</p>
<table width="100%">
<tr>
<td width="5%" valign="top"><em>Y</em></td>
<td width="95%" valign="top">Check the names for valid name syntax.</td>
</tr>
<tr>
<td valign="top"><em>N</em></td>
<td valign="top">Do not check the names for valid syntax.</td>
</tr>
</table>
<br>
<p>The name check field is optional. The default value for name check is Y. It
is ignored for functions 1 and B.</p>
<p><strong>Naming option.</strong> The naming convention used for naming
objects in SQL statements. The valid values are:</p>
<table width="100%">
<tr>
<td width="10%" valign="top"><em>SYS</em></td>
<td width="90%" valign="top"><em>library/file</em> syntax</td>
</tr>
<tr>
<td valign="top"><em>SQL</em></td>
<td valign="top"><em>collection/table</em> syntax</td>
</tr>
</table>
<br>
<p>The naming option is required for function 1. For function D, it must be set to X'000000'. It is ignored for other functions.</p>
<p><strong>Number of rows to insert.</strong> When you request an INSERT
statement, this value indicates how many rows are being inserted. Blocked
INSERT using SQLDA is similar to blocked FETCH using SQLDA. Refer to the <a
href="../db2/rbafzmst02.htm">DB2 UDB for iSeries SQL Reference</a> topic for
instructions on how to set up the SQLDA to do blocked FETCH. Refer to <a href=
"#HDRSQLDARE">Blocked INSERT Using SQLDA Setup Requirements</a> for blocked
INSERT requirements that are different from blocked FETCH.</p>
<p>The prepared INSERT statement must be a blocked INSERT with a parameter
marker specified for the number of rows.</p>
<p>The number of rows to insert is required for function 3 but is used only
when the statement is an INSERT. It is ignored for all other functions.</p>
<p><strong>Number of statement, condition, or connection information items.</strong> The number of items specified in the statement, condition, or connection information item types list. If 0 is specified, no information items will be returned.</p>
<p><strong>Offset to statement, condition, or connection information item type list.</strong> Offset from beginning of <a href="#HDRTMPL5">SQLP0500 Format</a> to the list of statement, condition, or connection information item types.</p>
<p><strong>Offset to statement text length and
statement text.</strong> Offset from beginning of <a href="#HDRTMPL11">SQLP00110
Format</a>, <a href="#HDRTMPL21">SQLP00210 Format</a>,
<a href="#HDRTMPL31">SQLP00310 Format</a>, or
<a href="#HDRTMPL41">SQLP00410 Format</a> to the start of the
statement text length field. The statement text should immediately follow the
statement text length. This must be 0 for all functions other than
2, 3, 4, 7, 9, and A.</p>
<img src="v5r4bdelta.gif" alt="Start of change">
<p><strong>Offset to Extended User-defined field.</strong> Offset from beginning of <a href="#HDRTMPL31">SQLP00310 Format</a> or
<a href="#HDRTMPL41">SQLP00410 Format</a> to the start of the
extended user-defined field. When the offset is set to zero, the user-defined
field will be used instead of the extended user-defined field.
</p>
<img src="v5r4bdeltaend.gif" alt="End of change">
<p><strong>Open options.</strong> The open options used on an SQL cursor. These
are specified using the following bits:</p>
<table width="100%">
<tr>
<td width="15%" valign="top"><em>Bit(0)</em></td>
<td width="85%" valign="top">Read</td>
</tr>
<tr>
<td valign="top"><em>Bit(1)</em></td>
<td valign="top">Write</td>
</tr>
<tr>
<td valign="top"><em>Bit(2)</em></td>
<td valign="top">Update</td>
</tr>
<tr>
<td valign="top"><em>Bit(3)</em></td>
<td valign="top">Delete</td>
</tr>
</table>
<br>
<p>For example, if a cursor is only for FETCH statements, the bit pattern
should be '10000000'B or hex 80. If update capability is needed, the bit
pattern should be '10100000'B. The syntax in the SQL statement takes precedence
over the open options. This means that the FOR UPDATE OF and FOR FETCH ONLY
clauses will be honored, even if they do not coincide with the requested open
options. The open options are required for functions 2 and 4. They are ignored
for other functions.</p>
<p><strong>Position option.</strong> The positioning option that is used for a
FETCH statement. For options other than NEXT, the cursor must have been opened
as a scrollable cursor. The valid options are:</p>
<table width="100%">
<tr>
<td width="5%" valign="top"><em>0</em></td>
<td width="95%" valign="top">FETCH NEXT</td>
</tr>
<tr>
<td valign="top"><em>1</em></td>
<td valign="top">FETCH PRIOR</td>
</tr>
<tr>
<td valign="top"><em>2</em></td>
<td valign="top">FETCH FIRST</td>
</tr>
<tr>
<td valign="top"><em>3</em></td>
<td valign="top">FETCH LAST</td>
</tr>
<tr>
<td valign="top"><em>5</em></td>
<td valign="top">FETCH BEFORE</td>
</tr>
<tr>
<td valign="top"><em>6</em></td>
<td valign="top">FETCH AFTER</td>
</tr>
<tr>
<td valign="top"><em>6</em></td>
<td valign="top">FETCH CURRENT</td>
</tr>
<tr>
<td valign="top"><em>7</em></td>
<td valign="top">FETCH RELATIVE</td>
</tr>
</table>
<br>
<p>The position option is required for function 5. It is ignored for other
functions.</p>
<p><strong>Relative record.</strong> The number of rows forward or backward to
move before retrieving data. A positive number means forward and a negative
number, backward. This is required when using function 5 (FETCH) with a
position option of FETCH RELATIVE. It is ignored for other options.</p>
<p><strong>Reopen.</strong> Whether to allow a cursor that is currently open to
be reopened. A reopen operation implicitly closes and opens the cursor. If a
reopen operation is requested on a cursor that is currently closed, only an
open operation is performed (no implicit close takes place). The valid values
follow:</p>
<table width="100%">
<tr>
<td width="5%" valign="top"><em>0</em></td>
<td width="95%" valign="top">Do not allow an open cursor to be reopened.</td>
</tr>
<tr>
<td valign="top"><em>1</em></td>
<td valign="top">Allow an open cursor to be reopened.</td>
</tr>
</table>
<br>
<p>The reopen field is optional for function 4 with a default of 0. It is
ignored for all other functions.</p>
<p><strong>Use performance area.</strong> Use a performance area internally to
store information about the invocation environment. This option is beneficial
in environments where statements are run repeatedly. The valid values
follow:</p>
<table width="100%">
<tr>
<td width="5%" valign="top"><em>0</em></td>
<td width="95%" valign="top">Do not use the internal performance area. The
default value is 0.</td>
</tr>
<tr>
<td valign="top"><em>1</em></td>
<td valign="top">Use the internal performance area.</td>
</tr>
</table>
<br>
<p><strong>Reserved.</strong>
All reserved fields must be set to X'00'.</p>
<p><strong>Reuse SQLDA.</strong> Whether the SQLDA is being used again without
changes. The possible values follow:</p>
<table width="100%">
<tr>
<td width="5%" valign="top"><em>Y</em></td>
<td width="95%" valign="top">SQLDA is being reused without changes. Do not
validate the SQLDA.</td>
</tr>
<tr>
<td valign="top"><em>N</em></td>
<td valign="top">SQLDA is not being reused. Validate the SQLDA.</td>
</tr>
</table>
<br>
<p>The reuse SQLDA field is optional for functions 3, 4, and 5. The default
value for reuse SQLDA is N. It is ignored for all other functions.</p>
<p><strong>Scrollable option.</strong> Specified if the cursor is scrollable.
The cursor must be opened as scrollable if any FETCH options other than FETCH
NEXT are used. The valid values are:</p>
<table width="100%">
<tr>
<td width="5%" valign="top"><em>0</em></td>
<td width="95%" valign="top">Cursor is not scrollable</td>
</tr>
<tr>
<td valign="top"><em>1</em></td>
<td valign="top">Cursor is scrollable</td>
</tr>
</table>
<br>
<p>The scrollable option is required for function 4. It is ignored for other
functions.</p>
<p><strong>Sort sequence table name.</strong> The sort sequence table name to
be used for string comparisons in SQL statements. The possible values
follow:</p>
<table width="100%">
<tr>
<td width="15%" valign="top"><em>*JOB</em></td>
<td width="85%" valign="top">The sort sequence value for the job is retrieved
when the package is created.</td>
</tr>
<tr>
<td valign="top"><em>*JOBRUN</em></td>
<td valign="top">The sort sequence value for the job is retrieved when the
program is run.</td>
</tr>
<tr>
<td valign="top"><em>*LANGIDUNQ</em></td>
<td valign="top">The unique-weight sort table for the language that is
specified on the language identifier field is used.</td>
</tr>
<tr>
<td valign="top"><em>*LANGIDSHR</em></td>
<td valign="top">The shared-weight sort table for the language that is
specified on the language identifier field is used.</td>
</tr>
<tr>
<td valign="top"><em>*HEX</em></td>
<td valign="top">A sort sequence table is not used. The hexadecimal values of
the characters are used to determine the sort sequence.</td>
</tr>
<tr>
<td valign="top"><em>table-name</em></td>
<td valign="top">The name of the sort sequence table to be used.</td>
</tr>
</table>
<br>
<p>The sort sequence table name value is required for function 1. It is ignored
for other functions.</p>
<p><strong>Sort sequence library name.</strong> The name of the sort sequence
table can be qualified by one of the following library values:</p>
<table width="100%">
<tr>
<td width="15%" valign="top"><em>*LIBL</em></td>
<td width="85%" valign="top">All libraries in the job's library list are
searched until the first match is found.</td>
</tr>
<tr>
<td valign="top"><em>*CURLIB</em></td>
<td valign="top">The current library for the job is searched. If no library is
specified as the current library for the job, the QGPL library is used.</td>
</tr>
<tr>
<td valign="top"><em>library-name</em></td>
<td valign="top">The name of the library to be searched.</td>
</tr>
</table>
<br>
<p>The sort sequence library name value is required for function 1 when a table
name is specified for the sort sequence table name value. It is ignored for
other functions.</p>
<p><strong>SQL package library name.</strong> The library of the package.</p>
<p><strong>SQL package name.</strong> The name of the SQL package used as the
repository for the extended dynamic SQL statements. The SQL package must not be
a distributed SQL package created through the Create SQL Package (CRTSQLPKG) or
the Create SQL xxx (CRTSQLxxx) commands. Attempted use of a distributed SQL
package results in SQL0827. The SQL package name is required for all functions.
<!-- v5r1 dcr 98321 - validate package name and support delete --> Function 1
checks the specified package name for valid name syntax. An invalid name
results in SQL7023.</p>
<p><strong>SQL-package system pointer.</strong> A system pointer that has been
resolved to point to the SQL package. This option is ignored if the use
pointers field has not been set to Y. If the use pointers field is specified,
this field is used in place of the SQL package name and SQL package library
name.</p>
<p><strong>Statement, condition, or connection information item types list.</strong> The list of statement, condition, or connection information types that are to be retrieved from the SQL diagnostic area. A unique key identifies each item type. For the list of the keys that may be specified for item types, see <a href="#HDRDINFKEY1">Key Values and Data Types of Statement Diagnostic Information Items</a>,
<a href="#HDRDINFKEY2">Key Values and Data Types of Condition Diagnostic Information Items</a>, or <a href="#HDRDINFKEY3">Key Values and Data Types of Connection Diagnostic Information Items</a>.</p>
<p>Any one or all of the individual diagnostic information item types may be specified in the list. A default value will be returned if the diagnostic item is currently not set in the SQL diagnostic area.</p>
<p><strong>Statement length.</strong> The length of the SQL statement text that
follows. The statement length is required for function 2, 9 and A. It is
ignored for other functions.</p>
<p><img src="v5r4adelta.gif" alt="Start of change">
<strong>Statement length type.</strong> Whether the SQL statement text is preceded by a two-byte or a four-byte statement length. The valid values are:
<table width="100%">
<tr>
<td width="5%" valign="top"><em>'0'</em></td>
<td width="95%" valign="top">A two-byte statement length is used. This is the default.</td>
</tr>
<tr>
<td valign="top"><em>'1'</em></td>
<td valign="top">A four-byte statement length is used.
<img src="v5r4adeltaend.gif" alt="End of change"></td>
</tr>
</table>
</p>
<p><strong>Statement name.</strong> The name of the prepared SQL statement. The
statement name is required for functions 2, 3, 4, 7, 9, and A. It is ignored
for other functions.</p>
<p><strong>Statement text.</strong> The SQL statement text that will be
prepared. The statement text is required for function 2. It is ignored for
other functions.</p>
<p><strong>Statement text CCSID.</strong> The CCSID of the SQL statement text
that will be prepared in this package. The statement text CCSID is optional for
function 1. It is ignored for other functions. If the SQLP0100, SQLP0110,
SQLP0200 or SQLP0210 formats are specified or if statement text CCSID
is 0, the job CCSID is used.</p>
<p><strong>Time format.</strong> The format used when accessing time result
columns. All output time fields are returned in the format you specify. For
input time strings, the value you specify is used to determine whether the time
is a valid format. The valid values are:</p>
<table width="100%">
<tr>
<td width="15%" valign="top"><em>HMS</em></td>
<td width="85%" valign="top">Hour/minute/second (hh:mm:ss)</td>
</tr>
<tr>
<td valign="top"><em>USA</em></td>
<td valign="top">IBM USA standard (mm.dd.yyyy, hh:mm a.m., hh:mm p.m.)</td>
</tr>
<tr>
<td valign="top"><em>ISO</em></td>
<td valign="top">International Standards Organization (yyyy-mm-dd,
hh.mm.ss)</td>
</tr>
<tr>
<td valign="top"><em>EUR</em></td>
<td valign="top">IBM European Standard (dd.mm.yyyy, hh.mm.ss)</td>
</tr>
<tr>
<td valign="top"><em>JIS</em></td>
<td valign="top">Japanese Industrial standard Christian Era (yyyy-mm-dd,
hh:mm:ss)</td>
</tr>
</table>
<br>
<p>The time format is required for function 1. For function D, it must be set to X'000000'. It is ignored for other functions.</p>
<p><strong>Time separator.</strong> The separator used when accessing time
result columns. The valid values are:</p>
<table width="100%">
<tr>
<td width="10%" valign="top"><em>:</em></td>
<td width="90%" valign="top">Colon separator</td>
</tr>
<tr>
<td valign="top"><em>.</em></td>
<td valign="top">Period separator</td>
</tr>
<tr>
<td valign="top"><em>,</em></td>
<td valign="top">Comma separator</td>
</tr>
<tr>
<td valign="top"><em>blank</em></td>
<td valign="top">Blank separator</td>
</tr>
</table>
<br>
<p>The time separator is required for function 1. For function D, it must be set to X'00'. It is ignored for other functions.</p>
<p><strong>Use pointers.</strong> Whether the system pointers should be used to
locate the main program and the SQL package instead of the symbolic names. The
possible values follow:</p>
<table width="100%">
<tr>
<td width="5%" valign="top"><em>0</em></td>
<td width="95%" valign="top">Do not use pointers to the main program and the
SQL package. The symbolic names are used to resolve to the objects.</td>
</tr>
<tr>
<td valign="top"><em>1</em></td>
<td valign="top">Use the main-program and SQL-package system pointers instead
of symbolic names. If 1 is specified, the pointers must address the main
program and SQL package. The symbolic names are ignored. If 1 is specified,
both pointers must be set.</td>
</tr>
</table>
<br>
<p>The use pointers field is optional for all functions. The default value for
the use pointers field is 0.</p>
<p><strong>User-defined field.</strong> Up to 18 bytes of user-defined data
that is inserted into the database performance monitor table. The data is only
written to the table if you are collecting database performance monitor
statistics by using the Start Database Monitor (STRDBMON) or the Start
Performance Monitor (STRPFRMON) command. The user-defined field is optional for
all functions. If this field is desired when you collect data, you should use
it consistently for all functions.</p>
<p><strong>Using clause for describe.</strong> The value to assign to each
SQLNAME variable in the SQLDA. The possible values are:</p>
<table width="100%">
<!-- cols="5 95" -->
<tr>
<td valign="top"><em>N</em></td>
<td valign="top">Column names</td>
</tr>
<tr>
<td valign="top"><em>L</em></td>
<td valign="top">Column labels</td>
</tr>
<tr>
<td valign="top"><em>B</em></td>
<td valign="top">Both (SQLDA must be allocated for twice as many entries)</td>
</tr>
<tr>
<td valign="top"><em>A</em></td>
<td valign="top">Any labels that exist</td>
</tr>
</table>
<br>
<p>These are explained more completely in the <a href="../db2/rbafzmst02.htm">
DB2 UDB for iSeries SQL Reference</a> topic. The using clause is required for
functions 7 and 9. It is ignored for other functions.</p>
<p>DLYPRP (delay PREPARE) is an option on an SQL precompile operation that
cannot be specified on the creation of a package (function 1). DLYPRP(*NO) is
used as the default.</p>
<p>Refer to the DB2 Universal Database for iSeries documentation for a full description of all the
options.</p>
<p><strong>WITH HOLD.</strong> Whether the WITH HOLD SQL option should be
applied to the statement. The possible values follow:</p>
<table width="100%">
<!-- cols="5 95" -->
<tr>
<td valign="top"><em>Y</em></td>
<td valign="top">The cursor is not closed as a consequence of a
commit operation. The commit operation commits all the changes in the current
unit of work but releases only locks that are not required to maintain the
cursor.</td>
</tr>
<tr>
<td valign="top"><em>N</em></td>
<td valign="top">The cursor is closed at the time of commit.</td>
</tr>
</table>
<br>
<p>The WITH HOLD field is optional for functions 2 and 9. The default for WITH
HOLD is N. It is ignored for all other functions.</p>
<br>
<h3><a name="HDRDINF">Diagnostic Information Data Format</a></h3>
<p>The following shows the format of the data returned in the SQL diagnostic information receiver when a statement, condition, or connection information item data is requested. For detailed descriptions of the fields in the table, see <a href="#HDRDINFOFD">Diagnostic Information Field Descriptions</a>.</p>
<table border width="80%">
<tr>
<th align="center" valign="bottom" colspan="2">Offset</th>
<th align="left" valign="bottom" rowspan="2">Type</th>
<th align="left" valign="bottom" rowspan="2">Field</th>
</tr>
<tr>
<th align="center" valign="bottom">Dec</th>
<th align="center" valign="bottom">Hex</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">0</td>
<td align="center" valign="top" width="10%">0</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="60%">Bytes returned</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">4</td>
<td align="center" valign="top" width="10%">4</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="60%">Bytes available</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">8</td>
<td align="center" valign="top" width="10%">8</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="60%">Number of diagnostic information items returned</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">12</td>
<td align="center" valign="top" width="10%">C</td>
<td align="left" valign="top" width="20%">ARRAY(*) of CHAR(*)</td>
<td align="left" valign="top" width="60%">Diagnostic information items</td>
</tr>
</table>
<p>The following shows the format of the diagnostic information item data returned in the SQL diagnostic information receiver for each diagnostic information item. For detailed descriptions of the fields in the table, see <a href="#HDRDINFOFD">Diagnostic Information Field Descriptions</a>.</p>
<table border width="80%">
<tr>
<th align="center" valign="bottom" colspan="2">Offset</th>
<th align="left" valign="bottom" rowspan="2">Type</th>
<th align="left" valign="bottom" rowspan="2">Field</th>
</tr>
<tr>
<th align="center" valign="bottom">Dec</th>
<th align="center" valign="bottom">Hex</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">0</td>
<td align="center" valign="top" width="10%">0</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="60%">Length of diagnostic information item</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">4</td>
<td align="center" valign="top" width="10%">4</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="60%">Key of diagnostic information item</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">8</td>
<td align="center" valign="top" width="10%">8</td>
<td align="left" valign="top" width="20%">Char(1)</td>
<td align="left" valign="top" width="60%">Type of data returned</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">9</td>
<td align="center" valign="top" width="10%">9</td>
<td align="left" valign="top" width="20%">Char(3)</td>
<td align="left" valign="top" width="60%">Reserved</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">12</td>
<td align="center" valign="top" width="10%">C</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="60%">Length of data returned</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">16</td>
<td align="center" valign="top" width="10%">10</td>
<td align="left" valign="top" width="20%">Char(*)</td>
<td align="left" valign="top" width="60%">Data returned</td>
</tr>
</table>
<br>
<h3><a name="HDRDINFOFD">Diagnostic Information Field Descriptions</a></h3>
<p><strong>Bytes available.</strong> The number of bytes of data available to be returned.
All available data is returned if enough space is provided. </p>
<p><strong>Bytes returned.</strong> The number of bytes of data returned.</p>
<p><strong>Diagnostic information item.</strong> Diagnostic information item data returned in the SQL diagnostic information receiver for each diagnostic information item. For detailed description of the format of the returned data, see <a href="#HDRDINF"> Diagnostic Information Data Format</a>.</p>
<p><strong>Data returned.</strong> Data returned for the diagnostic item identified by the key. Refer to the <a
href="../db2/rbafzmst02.htm">DB2 UDB for iSeries SQL Reference</a> for information on the possible data value for the diagnostic item.</p>
<p><strong>Key of diagnostic information item.</strong> Key that identifies the returned diagnostic information item. For a list of key values for each diagnostic information item available for retrieval, see <a href="#HDRDINFKEY1">Key Values and Data Types of Statement Diagnostic Information Items</a>,
<a href="#HDRDINFKEY2">Key Values and Data Types of Condition Diagnostic Information Items</a>, or <a href="#HDRDINFKEY3">Key Values and Data Types of Connection Diagnostic Information Items</a>.</p>
<p><strong>Length of data returned.</strong> Length of data returned for the item.</p>
<p><strong>Length of diagnostic information item.</strong> Length of the information returned for the item. This length can be used to access the next diagnostic information item. </p>
<p><strong>Number of diagnostic information items returned.</strong> Number of diagnostic information returned in the space provided.</p>
<p><strong>Reserved.</strong> A field that can be ignored. </p>
<p><strong>Type of data returned.</strong> Type of the data returned for the item. The possible values are:</p>
<table width="100%">
<!-- cols="5 95" -->
<tr>
<td valign="top"><em>B</em></td>
<td valign="top">Binary data</td>
</tr>
<tr>
<td valign="top"><em>C</em></td>
<td valign="top">Character data</td>
</tr>
<tr>
<td valign="top"><em>D</em></td>
<td valign="top">Decimal data</td>
</tr>
</table>
<br>
<h3><a name="HDRDINFKEY1">Key Values and Data Types of Statement Diagnostic Information Items</a></h3>
<table border width="80%">
<tr>
<th align="center" valign="bottom">Key</th>
<th align="left" valign="bottom" >Type</th>
<th align="left" valign="bottom" >SQL Get Diagnostics Item</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">101</td>
<td align="left" valign="top" width="20%">CHAR(*)</td>
<td align="left" valign="top" width="70%">COMMAND_FUNCTION</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">102</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="70%">COMMAND_FUNCTION_CODE</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">103</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="70%">DB2_RELATIVE_COST_ESTIMATE</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">104</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="70%">DB2_DIAGNOSTIC_CONVERSION_ERROR</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">105</td>
<td align="left" valign="top" width="20%">CHAR(*)</td>
<td align="left" valign="top" width="70%">DB2_GET_DIAGNOSTICS_DIAGNOSTICS</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">106</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="70%">DB2_LAST_ROW</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">107</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="70%">DB2_NUMBER_CONNECTIONS</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">108</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="70%">DB2_NUMBER_PARAMETER_MARKERS</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">109</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="70%">DB2_NUMBER_RESULT_SETS</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">110</td>
<td align="left" valign="top" width="20%">DECIMAL(31,0)</td>
<td align="left" valign="top" width="70%">DB2_NUMBER_ROWS</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">111</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="70%">DB2_NUMBER_SUCCESSFUL_SUBSTMTS</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">112</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="70%">DB2_RETURN_STATUS</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">113</td>
<td align="left" valign="top" width="20%">DECIMAL(31,0)</td>
<td align="left" valign="top" width="70%">DB2_ROW_COUNT_SECONDARY</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">114</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="70%">DB2_ROW_LENGTH</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">115</td>
<td align="left" valign="top" width="20%">CHAR(1)</td>
<td align="left" valign="top" width="70%">DB2_SQL_ATTR_CONCURRENCY</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">116</td>
<td align="left" valign="top" width="20%">CHAR(1)</td>
<td align="left" valign="top" width="70%">DB2_SQL_ATTR_CURSOR_CAPABILITY</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">117</td>
<td align="left" valign="top" width="20%">CHAR(1)</td>
<td align="left" valign="top" width="70%">DB2_SQL_ATTR_CURSOR_HOLD</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">118</td>
<td align="left" valign="top" width="20%">CHAR(1)</td>
<td align="left" valign="top" width="70%">DB2_SQL_ATTR_CURSOR_ROWSET</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">119</td>
<td align="left" valign="top" width="20%">CHAR(1)</td>
<td align="left" valign="top" width="70%">DB2_SQL_ATTR_CURSOR_SCROLLABLE</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">120</td>
<td align="left" valign="top" width="20%">CHAR(1)</td>
<td align="left" valign="top" width="70%">DB2_SQL_ATTR_CURSOR_SENSITIVITY</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">121</td>
<td align="left" valign="top" width="20%">CHAR(1)</td>
<td align="left" valign="top" width="70%">DB2_SQL_ATTR_CURSOR_TYPE</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">122</td>
<td align="left" valign="top" width="20%">CHAR(*)</td>
<td align="left" valign="top" width="70%">DYNAMIC_FUNCTION</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">123</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="70%">DYNAMIC_FUNCTION_CODE</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">124</td>
<td align="left" valign="top" width="20%">CHAR(1)</td>
<td align="left" valign="top" width="70%">MORE</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">125</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="70%">NUMBER</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">126</td>
<td align="left" valign="top" width="20%">DECIMAL(31,0)</td>
<td align="left" valign="top" width="70%">ROW_COUNT</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">127</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="70%">TRANSACTION_ACTIVE</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">128</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="70%">TRANSACTIONS_COMMITTED</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">129</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="70%">TRANSACTIONS_ROLLED_BACK</td>
</tr>
</table>
<br>
<h3><a name="HDRDINFKEY2">Key Values and Data Types of Condition Diagnostic Information Items</a></h3>
<table border width="80%">
<tr>
<th align="center" valign="bottom">Key</th>
<th align="left" valign="bottom" >Type</th>
<th align="left" valign="bottom" >SQL Get Diagnostics Item</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">201</td>
<td align="left" valign="top" width="20%">CHAR(*)</td>
<td align="left" valign="top" width="70%">CATALOG_NAME</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">202</td>
<td align="left" valign="top" width="20%">CHAR(*)</td>
<td align="left" valign="top" width="70%">CLASS_ORIGIN</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">203</td>
<td align="left" valign="top" width="20%">CHAR(*)</td>
<td align="left" valign="top" width="70%">COLUMN_NAME</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">204</td>
<td align="left" valign="top" width="20%">CHAR(*)</td>
<td align="left" valign="top" width="70%">CONDITION_IDENTIFIER</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">205</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="70%">CONDITION_NUMBER</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">206</td>
<td align="left" valign="top" width="20%">CHAR(*)</td>
<td align="left" valign="top" width="70%">CONSTRAINT_CATALOG</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">207</td>
<td align="left" valign="top" width="20%">CHAR(*)</td>
<td align="left" valign="top" width="70%">CONSTRAINT_NAME</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">208</td>
<td align="left" valign="top" width="20%">CHAR(*)</td>
<td align="left" valign="top" width="70%">CONSTRAINT_SCHEMA</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">209</td>
<td align="left" valign="top" width="20%">CHAR(*)</td>
<td align="left" valign="top" width="70%">CURSOR_NAME</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">210</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="70%">DB2_ERROR_CODE1</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">211</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="70%">DB2_ERROR_CODE2</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">212</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="70%">DB2_ERROR_CODE3</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">213</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="70%">DB2_ERROR_CODE4</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">214</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="70%">DB2_INTERNAL_ERROR_POINTER</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">215</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="70%">DB2_LINE_NUMBER</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">216</td>
<td align="left" valign="top" width="20%">CHAR(10)</td>
<td align="left" valign="top" width="70%">DB2_MESSAGE_ID</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">217</td>
<td align="left" valign="top" width="20%">CHAR(*)</td>
<td align="left" valign="top" width="70%">DB2_MESSAGE_ID1</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">218</td>
<td align="left" valign="top" width="20%">CHAR(*)</td>
<td align="left" valign="top" width="70%">DB2_MESSAGE_ID2</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">219</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="70%">DB2_MESSAGE_KEY</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">220</td>
<td align="left" valign="top" width="20%">CHAR(*)</td>
<td align="left" valign="top" width="70%">DB2_MODULE_DETECTING_ERROR</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">221</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="70%">DB2_NUMBER_FAILING_STATEMENTS</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">222</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="70%">DB2_OFFSET</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">223</td>
<td align="left" valign="top" width="20%">CHAR(*)</td>
<td align="left" valign="top" width="70%">DB2_ORDINAL_TOKEN_1</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">224</td>
<td align="left" valign="top" width="20%">CHAR(*)</td>
<td align="left" valign="top" width="70%">DB2_ORDINAL_TOKEN_2</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">225</td>
<td align="left" valign="top" width="20%">CHAR(*)</td>
<td align="left" valign="top" width="70%">DB2_ORDINAL_TOKEN_3</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">226</td>
<td align="left" valign="top" width="20%">CHAR(*)</td>
<td align="left" valign="top" width="70%">DB2_ORDINAL_TOKEN_4</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">227</td>
<td align="left" valign="top" width="20%">CHAR(*)</td>
<td align="left" valign="top" width="70%">DB2_ORDINAL_TOKEN_5</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">228</td>
<td align="left" valign="top" width="20%">CHAR(*)</td>
<td align="left" valign="top" width="70%">DB2_ORDINAL_TOKEN_6</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">229</td>
<td align="left" valign="top" width="20%">CHAR(*)</td>
<td align="left" valign="top" width="70%">DB2_ORDINAL_TOKEN_7</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">230</td>
<td align="left" valign="top" width="20%">CHAR(*)</td>
<td align="left" valign="top" width="70%">DB2_ORDINAL_TOKEN_8</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">231</td>
<td align="left" valign="top" width="20%">CHAR(*)</td>
<td align="left" valign="top" width="70%">DB2_ORDINAL_TOKEN_9</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">232</td>
<td align="left" valign="top" width="20%">CHAR(*)</td>
<td align="left" valign="top" width="70%">DB2_ORDINAL_TOKEN_10</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">233</td>
<td align="left" valign="top" width="20%">CHAR(*)</td>
<td align="left" valign="top" width="70%">DB2_ORDINAL_TOKEN_11</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">234</td>
<td align="left" valign="top" width="20%">CHAR(*)</td>
<td align="left" valign="top" width="70%">DB2_ORDINAL_TOKEN_12</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">235</td>
<td align="left" valign="top" width="20%">CHAR(*)</td>
<td align="left" valign="top" width="70%">DB2_ORDINAL_TOKEN_13</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">236</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="70%">DB2_PARTITION_NUMBER</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">237</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="70%">DB2_REASON_CODE</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">238</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="70%">DB2_RETURNED_SQLCODE</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">239</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="70%">DB2_ROW_NUMBER</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">240</td>
<td align="left" valign="top" width="20%">CHAR(1)</td>
<td align="left" valign="top" width="70%">DB2_SQLERRD_SET</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">241</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="70%">DB2_SQLERRD1</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">242</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="70%">DB2_SQLERRD2</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">243</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="70%">DB2_SQLERRD3</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">244</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="70%">DB2_SQLERRD4</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">245</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="70%">DB2_SQLERRD5</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">246</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="70%">DB2_SQLERRD6</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">247</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="70%">DB2_TOKEN_COUNT</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">248</td>
<td align="left" valign="top" width="20%">CHAR(70)</td>
<td align="left" valign="top" width="70%">DB2_TOKEN_STRING</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">249</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="70%">MESSAGE_LENGTH</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">250</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="70%">MESSAGE_OCTET_LENGTH</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">251</td>
<td align="left" valign="top" width="20%">CHAR(*)</td>
<td align="left" valign="top" width="70%">MESSAGE_TEXT</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">252</td>
<td align="left" valign="top" width="20%">CHAR(*)</td>
<td align="left" valign="top" width="70%">PARAMETER_MODE</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">253</td>
<td align="left" valign="top" width="20%">CHAR(*)</td>
<td align="left" valign="top" width="70%">PARAMETER_NAME</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">254</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="70%">PARAMETER_ORDINAL_POSITION</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">255</td>
<td align="left" valign="top" width="20%">CHAR(5)</td>
<td align="left" valign="top" width="70%">RETURNED_SQLSTATE</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">256</td>
<td align="left" valign="top" width="20%">CHAR(*)</td>
<td align="left" valign="top" width="70%">ROUTINE_CATALOG</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">257</td>
<td align="left" valign="top" width="20%">CHAR(*)</td>
<td align="left" valign="top" width="70%">ROUTINE_NAME</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">258</td>
<td align="left" valign="top" width="20%">CHAR(*)</td>
<td align="left" valign="top" width="70%">ROUTINE_SCHEMA</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">259</td>
<td align="left" valign="top" width="20%">CHAR(*)</td>
<td align="left" valign="top" width="70%">SCHEMA_NAME</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">260</td>
<td align="left" valign="top" width="20%">CHAR(*)</td>
<td align="left" valign="top" width="70%">SERVER_NAME</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">261</td>
<td align="left" valign="top" width="20%">CHAR(*)</td>
<td align="left" valign="top" width="70%">SPECIFIC_NAME</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">262</td>
<td align="left" valign="top" width="20%">CHAR(*)</td>
<td align="left" valign="top" width="70%">SUBCLASS_ORIGIN</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">263</td>
<td align="left" valign="top" width="20%">CHAR(*)</td>
<td align="left" valign="top" width="70%">TABLE_NAME</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">264</td>
<td align="left" valign="top" width="20%">CHAR(*)</td>
<td align="left" valign="top" width="70%">TRIGGER_CATALOG</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">265</td>
<td align="left" valign="top" width="20%">CHAR(*)</td>
<td align="left" valign="top" width="70%">TRIGGER_NAME</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">266</td>
<td align="left" valign="top" width="20%">CHAR(*)</td>
<td align="left" valign="top" width="70%">TRIGGER_SCHEMA</td>
</tr>
</table>
<br>
<h3><a name="HDRDINFKEY3">Key Values and Data Types of Connection Diagnostic Information Items</a></h3>
<table border width="80%">
<tr>
<th align="center" valign="bottom">Key</th>
<th align="left" valign="bottom" >Type</th>
<th align="left" valign="bottom" >SQL Get Diagnostics Item</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">301</td>
<td align="left" valign="top" width="20%">CHAR(*)</td>
<td align="left" valign="top" width="70%">GET DIAGNOSTICS CONNECTION_NAME</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">302</td>
<td align="left" valign="top" width="20%">CHAR(1)</td>
<td align="left" valign="top" width="70%">DB2_AUTHENTICATION_TYPE</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">303</td>
<td align="left" valign="top" width="20%">CHAR(*)</td>
<td align="left" valign="top" width="70%">DB2_AUTHORIZATION_ID</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">304</td>
<td align="left" valign="top" width="20%">CHAR(1)</td>
<td align="left" valign="top" width="70%">DB2_CONNECTION_METHOD</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">305</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="70%">DB2_CONNECTION_NUMBER</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">306</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="70%">DB2_CONNECTION_STATE</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">307</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="70%">DB2_CONNECTION_STATUS</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">308</td>
<td align="left" valign="top" width="20%">BINARY(2)</td>
<td align="left" valign="top" width="70%">DB2_CONNECTION_TYPE</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">309</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="70%">DB2_DYN_QUERY_MGMT</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">310</td>
<td align="left" valign="top" width="20%">CHAR(1)</td>
<td align="left" valign="top" width="70%">DB2_ENCRYPTION_TYPE</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">311</td>
<td align="left" valign="top" width="20%">CHAR(8)</td>
<td align="left" valign="top" width="70%">DB2_PRODUCT_ID</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">312</td>
<td align="left" valign="top" width="20%">CHAR(*)</td>
<td align="left" valign="top" width="70%">DB2_SERVER_CLASS_NAME</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">313</td>
<td align="left" valign="top" width="20%">CHAR(*)</td>
<td align="left" valign="top" width="70%">DB2_SERVER_NAME</td>
</tr>
</table>
<br>
<h3><a name="HDRSQLDARE">Blocked INSERT Using SQLDA Setup Requirements</a></h3>
<p>Just as in the case of blocked FETCH, the support for blocked INSERT with
SQLDA expects the users to have two contiguous areas. One is for the data and
the other is for the indicators. The former contains rows of data (the number
of rows is given on function 3 calls), and the latter contains rows of
indicators.</p>
<p>If none of the columns is null capable, there is no need to have an
indicator area. If any of the columns is null capable, all the columns should
be turned into null capable (that is, sqltype in all the sqlvar entries should
be an odd number), and the row indicator area should have as many indicators
per row as there are columns.</p>
<p>In the SQLDA, the pointer sqldata in all the sqlvar entries should be
pointing at the data elements for the first row. Similarly, the pointer sqlind
in all the sqlvar entries should be pointing at the indicators for the first
row, except in the case where there are no null-capable columns at all.</p>
<br>
<h3><a name="usage_notes">Usage Notes</a></h3>
<p>This function is not threadsafe when called in the following way:</p>
<ul>
<li>Using a Data Definition Language (DDL) SQL statement, for example: CREATE,
DROP or ALTER.</li>
</ul>
<br>
<h3>Error Messages</h3>
<table width="100%" cellpadding="3">
<tr>
<th align="left" valign="top">Message ID</th>
<th align="left" valign="top">Error Message Text</th>
</tr>
<tr>
<td width="15%" valign="top">CPF24B4 E</td>
<td width="85%" valign="top">Severe error while addressing parameter list.</td>
</tr>
<tr>
<td valign="top">CPF3C21 E</td>
<td valign="top">Format name &amp;1 is not valid.</td>
</tr>
<tr>
<td valign="top">CPF3C90 E</td>
<td valign="top">Literal value cannot be changed.</td>
</tr>
<tr>
<td valign="top">CPF9872 E</td>
<td valign="top">Program or service program &amp;1 in library &amp;2 ended.
Reason code &amp;3.</td>
</tr>
<tr>
<td valign="top">SQL0204 E</td>
<td valign="top">&amp;1. and &amp;2 type &amp;3 not found.</td>
</tr>
<tr>
<td valign="top">SQL0516 E</td>
<td valign="top">Prepare statement &amp;2 not found.</td>
</tr>
<tr>
<td valign="top">SQL0901 E</td>
<td valign="top">SQL system error.</td>
</tr>
<tr>
<td valign="top">SQL7023 E</td>
<td valign="top">Parameter value not valid.</td>
</tr>
</table>
<br>
<br>
<hr>
API introduced: V2R3
<hr>
<center>
<table cellpadding="2" cellspacing="2">
<tr align="center">
<td valign="middle" align="center"><a href="#top_Of_Page">Top</a> | <a href=
"file1.htm">Database and File APIs</a> | <a href="aplist.htm">APIs by
category</a></td>
</tr>
</table>
</center>
<br>
</body>
</html>