255 lines
15 KiB
HTML
255 lines
15 KiB
HTML
|
<?xml version="1.0" encoding="UTF-8"?>
|
||
|
<!DOCTYPE html
|
||
|
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||
|
<html lang="en-us" xml:lang="en-us">
|
||
|
<head>
|
||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||
|
<meta name="security" content="public" />
|
||
|
<meta name="Robots" content="index,follow" />
|
||
|
<meta http-equiv="PICS-Label" content='(PICS-1.1 "http://www.icra.org/ratingsv02.html" l gen true r (cz 1 lz 1 nz 1 oz 1 vz 1) "http://www.rsac.org/ratingsv01.html" l gen true r (n 0 s 0 v 0 l 0) "http://www.classify.org/safesurf/" l gen true r (SS~~000 1))' />
|
||
|
<meta name="DC.Type" content="reference" />
|
||
|
<meta name="DC.Title" content="SQLSpecialColumns - Get special (row identifier) columns" />
|
||
|
<meta name="DC.Relation" scheme="URI" content="rzadphdapi.htm" />
|
||
|
<meta name="copyright" content="(C) Copyright IBM Corporation 1999, 2006" />
|
||
|
<meta name="DC.Rights.Owner" content="(C) Copyright IBM Corporation 1999, 2006" />
|
||
|
<meta name="DC.Format" content="XHTML" />
|
||
|
<meta name="DC.Identifier" content="rzadpfnspcol" />
|
||
|
<meta name="DC.Language" content="en-us" />
|
||
|
<!-- All rights reserved. Licensed Materials Property of IBM -->
|
||
|
<!-- US Government Users Restricted Rights -->
|
||
|
<!-- Use, duplication or disclosure restricted by -->
|
||
|
<!-- GSA ADP Schedule Contract with IBM Corp. -->
|
||
|
<link rel="stylesheet" type="text/css" href="./ibmdita.css" />
|
||
|
<link rel="stylesheet" type="text/css" href="./ic.css" />
|
||
|
<title>SQLSpecialColumns</title>
|
||
|
</head>
|
||
|
<body id="rzadpfnspcol"><a name="rzadpfnspcol"><!-- --></a>
|
||
|
<!-- Java sync-link --><script language="Javascript" src="../rzahg/synch.js" type="text/javascript"></script>
|
||
|
<h1 class="topictitle1">SQLSpecialColumns - Get special (row identifier) columns</h1>
|
||
|
<div><div class="section"></div>
|
||
|
<div class="section"><h4 class="sectiontitle">Purpose</h4> <p><samp class="codeph">SQLSpecialColumns()</samp> returns
|
||
|
unique row identifier information (primary key or unique index) for a table.
|
||
|
For example, unique index or primary key information. The information is returned
|
||
|
in an SQL result set, which can be retrieved using the same functions that
|
||
|
are used to fetch a result set generated by a SELECT-statement.</p>
|
||
|
</div>
|
||
|
<div class="section"><h4 class="sectiontitle">Syntax</h4><pre>SQLRETURN SQLSpecialColumns (SQLHSTMT hstmt,
|
||
|
SQLSMALLINT fColType,
|
||
|
SQLCHAR *szCatalogName,
|
||
|
SQLSMALLINT cbCatalogName,
|
||
|
SQLCHAR *szSchemaName,
|
||
|
SQLSMALLINT cbSchemaName,
|
||
|
SQLCHAR *szTableName,
|
||
|
SQLSMALLINT cbTableName,
|
||
|
SQLSMALLINT fScope,
|
||
|
SQLSMALLINT fNullable);</pre>
|
||
|
</div>
|
||
|
<div class="section"><h4 class="sectiontitle">Function arguments</h4>
|
||
|
<div class="tablenoborder"><a name="rzadpfnspcol__tbspcol"><!-- --></a><table cellpadding="4" cellspacing="0" summary="" id="rzadpfnspcol__tbspcol" width="100%" frame="hsides" border="1" rules="all"><caption>Table 1. SQLSpecialColumns arguments</caption><thead align="left"><tr><th align="left" valign="top" width="20%" id="d0e48">Data type</th>
|
||
|
<th align="left" valign="top" width="20%" id="d0e50">Argument</th>
|
||
|
<th align="left" valign="top" width="20%" id="d0e52">Use</th>
|
||
|
<th align="left" valign="top" width="40%" id="d0e54">Description</th>
|
||
|
</tr>
|
||
|
</thead>
|
||
|
<tbody><tr><td align="left" valign="top" width="20%" headers="d0e48 ">SQLCHAR *</td>
|
||
|
<td align="left" valign="top" width="20%" headers="d0e50 "><em>szCatalogName</em></td>
|
||
|
<td align="left" valign="top" width="20%" headers="d0e52 ">Input</td>
|
||
|
<td align="left" valign="top" width="40%" headers="d0e54 ">Catalog qualifier of a three-part table name.
|
||
|
This must be a null pointer or a zero length string.</td>
|
||
|
</tr>
|
||
|
<tr><td align="left" valign="top" width="20%" headers="d0e48 ">SQLCHAR *</td>
|
||
|
<td align="left" valign="top" width="20%" headers="d0e50 "><em>szSchemaName</em></td>
|
||
|
<td align="left" valign="top" width="20%" headers="d0e52 ">Input</td>
|
||
|
<td align="left" valign="top" width="40%" headers="d0e54 ">Schema qualifier of the specified table.</td>
|
||
|
</tr>
|
||
|
<tr><td align="left" valign="top" width="20%" headers="d0e48 ">SQLCHAR *</td>
|
||
|
<td align="left" valign="top" width="20%" headers="d0e50 "><em>szTableName</em></td>
|
||
|
<td align="left" valign="top" width="20%" headers="d0e52 ">Input</td>
|
||
|
<td align="left" valign="top" width="40%" headers="d0e54 ">Table name.</td>
|
||
|
</tr>
|
||
|
<tr><td align="left" valign="top" width="20%" headers="d0e48 ">SQLHSTMT</td>
|
||
|
<td align="left" valign="top" width="20%" headers="d0e50 "><em>hstmt</em></td>
|
||
|
<td align="left" valign="top" width="20%" headers="d0e52 ">Input</td>
|
||
|
<td align="left" valign="top" width="40%" headers="d0e54 ">Statement handle.</td>
|
||
|
</tr>
|
||
|
<tr><td align="left" valign="top" width="20%" headers="d0e48 ">SQLSMALLINT</td>
|
||
|
<td align="left" valign="top" width="20%" headers="d0e50 "><em>cbCatalogName</em></td>
|
||
|
<td align="left" valign="top" width="20%" headers="d0e52 ">Input</td>
|
||
|
<td align="left" valign="top" width="40%" headers="d0e54 ">Length of <em>szCatalogName</em>. This must
|
||
|
be a set to 0.</td>
|
||
|
</tr>
|
||
|
<tr><td align="left" valign="top" width="20%" headers="d0e48 ">SQLSMALLINT</td>
|
||
|
<td align="left" valign="top" width="20%" headers="d0e50 "><em>cbSchemaName</em></td>
|
||
|
<td align="left" valign="top" width="20%" headers="d0e52 ">Input</td>
|
||
|
<td align="left" valign="top" width="40%" headers="d0e54 ">Length of <em>szSchemaName</em>.</td>
|
||
|
</tr>
|
||
|
<tr><td align="left" valign="top" width="20%" headers="d0e48 ">SQLSMALLINT</td>
|
||
|
<td align="left" valign="top" width="20%" headers="d0e50 "><em>cbTableName</em></td>
|
||
|
<td align="left" valign="top" width="20%" headers="d0e52 ">Input</td>
|
||
|
<td align="left" valign="top" width="40%" headers="d0e54 ">Length of <em>cbTableName</em>.</td>
|
||
|
</tr>
|
||
|
<tr><td align="left" valign="top" width="20%" headers="d0e48 ">SQLSMALLINT</td>
|
||
|
<td align="left" valign="top" width="20%" headers="d0e50 "><em>fColType</em></td>
|
||
|
<td align="left" valign="top" width="20%" headers="d0e52 ">Input</td>
|
||
|
<td align="left" valign="top" width="40%" headers="d0e54 ">Reserved for future use to support additional
|
||
|
types of special columns. <p>This data type is currently ignored.</p>
|
||
|
</td>
|
||
|
</tr>
|
||
|
<tr><td align="left" valign="top" width="20%" headers="d0e48 ">SQLSMALLINT</td>
|
||
|
<td align="left" valign="top" width="20%" headers="d0e50 "><em>fNullable</em></td>
|
||
|
<td align="left" valign="top" width="20%" headers="d0e52 ">Input</td>
|
||
|
<td align="left" valign="top" width="40%" headers="d0e54 ">Determines whether to return special columns
|
||
|
that can have a NULL value. <div class="p">Must be one of the following values: <ul><li>SQL_NO_NULLS <p>The row identifier column set returned cannot have any
|
||
|
NULL values.</p>
|
||
|
</li>
|
||
|
<li>SQL_NULLABLE <p>The row identifier column set returned can include columns
|
||
|
where NULL values are permitted.</p>
|
||
|
</li>
|
||
|
</ul>
|
||
|
</div>
|
||
|
</td>
|
||
|
</tr>
|
||
|
<tr><td align="left" valign="top" width="20%" headers="d0e48 ">SQLSMALLINT</td>
|
||
|
<td align="left" valign="top" width="20%" headers="d0e50 "><em>fScope</em></td>
|
||
|
<td align="left" valign="top" width="20%" headers="d0e52 ">Input</td>
|
||
|
<td align="left" valign="top" width="40%" headers="d0e54 ">Minimum required duration for which the unique
|
||
|
row identifier is valid. <div class="p"><em>fScope</em> must be one of the following values:
|
||
|
<ul><li>SQL_SCOPE_CURROW - The row identifier is guaranteed to be valid only while
|
||
|
positioned on that row. A later reselect using the same row identifier values
|
||
|
might not return a row if the row is updated or deleted by another transaction.</li>
|
||
|
<li>SQL_SCOPE_TRANSACTION - The row identifier is guaranteed to be valid for
|
||
|
the duration of the current transaction.</li>
|
||
|
<li>SQL_SCOPE_SESSION - The row identifier is guaranteed to be valid for the
|
||
|
duration of the connection.</li>
|
||
|
</ul>
|
||
|
The duration over which a row identifier value is guaranteed to be valid
|
||
|
depends on the current transaction isolation level. For information and scenarios
|
||
|
involving isolation levels, refer to the IBM<sup>®</sup> DB2<sup>®</sup> <a href="../db2/rbafzmst.htm">SQL Reference</a>.</div>
|
||
|
</td>
|
||
|
</tr>
|
||
|
</tbody>
|
||
|
</table>
|
||
|
</div>
|
||
|
</div>
|
||
|
<div class="section"><h4 class="sectiontitle">Usage</h4><p>If multiple ways exist to uniquely identify
|
||
|
any row in a table (for example, if there are multiple unique indexes on the
|
||
|
specified table), then DB2 UDB CLI returns the <cite>best</cite> set of row
|
||
|
identifier columns based on its internal criterion.</p>
|
||
|
<p>If there is no column
|
||
|
set that allows any row in the table to be uniquely identified, an empty result
|
||
|
set is returned.</p>
|
||
|
<div class="p">The unique row identifier information is returned in
|
||
|
the form of a result set where each column of the row identifier is represented
|
||
|
by one row in the result set. The result set returned by <samp class="codeph">SQLSpecialColumns()</samp> has
|
||
|
the following columns in the following order:
|
||
|
<div class="tablenoborder"><a name="rzadpfnspcol__rsspcol"><!-- --></a><table cellpadding="4" cellspacing="0" summary="" id="rzadpfnspcol__rsspcol" width="100%" frame="hsides" border="1" rules="all"><caption>Table 2. Columns returned by SQLSpecialColumns</caption><thead align="left"><tr><th align="left" valign="top" width="33.33333333333333%" id="d0e228">Column name</th>
|
||
|
<th align="left" valign="top" width="33.33333333333333%" id="d0e230">Data type</th>
|
||
|
<th align="left" valign="top" width="33.33333333333333%" id="d0e232">Description</th>
|
||
|
</tr>
|
||
|
</thead>
|
||
|
<tbody><tr><td align="left" valign="top" width="33.33333333333333%" headers="d0e228 ">SCOPE</td>
|
||
|
<td align="left" valign="top" width="33.33333333333333%" headers="d0e230 ">SMALLINT not NULL</td>
|
||
|
<td align="left" valign="top" width="33.33333333333333%" headers="d0e232 ">Actual scope of the rowid. Contains one of
|
||
|
the following values: <ul><li>SQL_SCOPE_CURROW</li>
|
||
|
<li>SQL_SCOPE_TRANSACTION</li>
|
||
|
<li>SQL_SCOPE_SESSION</li>
|
||
|
</ul>
|
||
|
<p>Refer to <em>fScope</em> in <a href="#rzadpfnspcol__tbspcol">Table 1</a> for
|
||
|
a description of each value.</p>
|
||
|
</td>
|
||
|
</tr>
|
||
|
<tr><td align="left" valign="top" width="33.33333333333333%" headers="d0e228 ">COLUMN_NAME</td>
|
||
|
<td align="left" valign="top" width="33.33333333333333%" headers="d0e230 ">VARCHAR(128) not NULL</td>
|
||
|
<td align="left" valign="top" width="33.33333333333333%" headers="d0e232 ">Name of the row identifier column.</td>
|
||
|
</tr>
|
||
|
<tr><td align="left" valign="top" width="33.33333333333333%" headers="d0e228 ">DATA_TYPE</td>
|
||
|
<td align="left" valign="top" width="33.33333333333333%" headers="d0e230 ">SMALLINT not NULL</td>
|
||
|
<td align="left" valign="top" width="33.33333333333333%" headers="d0e232 ">SQL data type of the column.</td>
|
||
|
</tr>
|
||
|
<tr><td align="left" valign="top" width="33.33333333333333%" headers="d0e228 ">TYPE_NAME</td>
|
||
|
<td align="left" valign="top" width="33.33333333333333%" headers="d0e230 ">VARCHAR(128) not NULL</td>
|
||
|
<td align="left" valign="top" width="33.33333333333333%" headers="d0e232 ">Database Management System (DBMS) character
|
||
|
string represented of the name associated with DATA_TYPE column value.</td>
|
||
|
</tr>
|
||
|
<tr><td align="left" valign="top" width="33.33333333333333%" headers="d0e228 ">LENGTH_PRECISION</td>
|
||
|
<td align="left" valign="top" width="33.33333333333333%" headers="d0e230 ">INTEGER</td>
|
||
|
<td align="left" valign="top" width="33.33333333333333%" headers="d0e232 ">The precision of the column. NULL is returned
|
||
|
for data types where precision is not applicable.</td>
|
||
|
</tr>
|
||
|
<tr><td align="left" valign="top" width="33.33333333333333%" headers="d0e228 ">BUFFER_LENGTH</td>
|
||
|
<td align="left" valign="top" width="33.33333333333333%" headers="d0e230 ">INTEGER</td>
|
||
|
<td align="left" valign="top" width="33.33333333333333%" headers="d0e232 ">The length, in bytes, of the data returned
|
||
|
in the default C type. For CHAR data types, this is the same as the value
|
||
|
in the LENGTH_PRECISION column.</td>
|
||
|
</tr>
|
||
|
<tr><td align="left" valign="top" width="33.33333333333333%" headers="d0e228 ">SCALE</td>
|
||
|
<td align="left" valign="top" width="33.33333333333333%" headers="d0e230 ">SMALLINT</td>
|
||
|
<td align="left" valign="top" width="33.33333333333333%" headers="d0e232 ">The scale of the column. NULL is returned
|
||
|
for data types where scale is not applicable.</td>
|
||
|
</tr>
|
||
|
<tr><td align="left" valign="top" width="33.33333333333333%" headers="d0e228 ">PSEUDO_COLUMN</td>
|
||
|
<td align="left" valign="top" width="33.33333333333333%" headers="d0e230 ">SMALLINT</td>
|
||
|
<td align="left" valign="top" width="33.33333333333333%" headers="d0e232 ">Indicates whether the column is a pseudo-column; DB2 UDB
|
||
|
CLI only returns: <ul><li>SQL_PC_NOT_PSEUDO</li>
|
||
|
</ul>
|
||
|
</td>
|
||
|
</tr>
|
||
|
</tbody>
|
||
|
</table>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
<div class="section"><h4 class="sectiontitle">Return codes</h4><ul><li>SQL_SUCCESS</li>
|
||
|
<li>SQL_SUCCESS_WITH_INFO</li>
|
||
|
<li>SQL_ERROR</li>
|
||
|
<li>SQL_INVALID_HANDLE</li>
|
||
|
</ul>
|
||
|
</div>
|
||
|
<div class="section"><h4 class="sectiontitle">Diagnostics</h4>
|
||
|
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" width="100%" frame="hsides" border="1" rules="rows"><caption>Table 3. SQLSpecialColumns SQLSTATEs</caption><thead align="left"><tr><th align="left" valign="top" width="25%" id="d0e339">SQLSTATE</th>
|
||
|
<th align="left" valign="top" width="25%" id="d0e341">Description</th>
|
||
|
<th align="left" valign="top" width="50%" id="d0e343">Explanation</th>
|
||
|
</tr>
|
||
|
</thead>
|
||
|
<tbody><tr><td align="left" valign="top" width="25%" headers="d0e339 "><strong>24</strong>000</td>
|
||
|
<td align="left" valign="top" width="25%" headers="d0e341 ">Cursor state that is not valid</td>
|
||
|
<td align="left" valign="top" width="50%" headers="d0e343 ">Cursor related information is requested,
|
||
|
but no cursor is open.</td>
|
||
|
</tr>
|
||
|
<tr><td align="left" valign="top" width="25%" headers="d0e339 "><strong>40</strong>003 <strong>*</strong></td>
|
||
|
<td align="left" valign="top" width="25%" headers="d0e341 ">Statement completion unknown</td>
|
||
|
<td align="left" valign="top" width="50%" headers="d0e343 ">The communication link between the CLI and
|
||
|
the data source fails before the function completes processing.</td>
|
||
|
</tr>
|
||
|
<tr><td align="left" valign="top" width="25%" headers="d0e339 "><strong>HY</strong>001</td>
|
||
|
<td align="left" valign="top" width="25%" headers="d0e341 ">Memory allocation failure</td>
|
||
|
<td align="left" valign="top" width="50%" headers="d0e343 ">The driver is unable to allocate memory required
|
||
|
to support the processing or completion of the function.</td>
|
||
|
</tr>
|
||
|
<tr><td align="left" valign="top" width="25%" headers="d0e339 "><strong>HY</strong>009</td>
|
||
|
<td align="left" valign="top" width="25%" headers="d0e341 ">Argument length that is not valid</td>
|
||
|
<td align="left" valign="top" width="50%" headers="d0e343 ">The value of one of the length arguments
|
||
|
is less than 0, but not equal to SQL_NTS.</td>
|
||
|
</tr>
|
||
|
<tr><td valign="top" width="25%" headers="d0e339 "><strong>HY</strong>021</td>
|
||
|
<td valign="top" width="25%" headers="d0e341 ">Internal descriptor that is not valid </td>
|
||
|
<td valign="top" width="50%" headers="d0e343 ">The internal descriptor cannot be addressed or allocated,
|
||
|
or it contains a value that is not valid.</td>
|
||
|
</tr>
|
||
|
<tr><td align="left" valign="top" width="25%" headers="d0e339 "><strong>HY</strong>C00</td>
|
||
|
<td align="left" valign="top" width="25%" headers="d0e341 ">Driver not capable</td>
|
||
|
<td align="left" valign="top" width="50%" headers="d0e343 ">The data source does not support the <em>catalog</em> portion
|
||
|
(first part) of a three-part table name.</td>
|
||
|
</tr>
|
||
|
</tbody>
|
||
|
</table>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
<div>
|
||
|
<div class="familylinks">
|
||
|
<div class="parentlink"><strong>Parent topic:</strong> <a href="rzadphdapi.htm" title="This topic provides a description of each CLI function.">DB2 UDB CLI functions</a></div>
|
||
|
</div>
|
||
|
</div>
|
||
|
</body>
|
||
|
</html>
|