Teradata Call-Level Interface Version 2 Reference for

Teradata Call-Level Interface
Version 2
Reference for Channel-Attached Systems
Release 13.10
B035-2417-020A
February 2010
The product or products described in this book are licensed products of Teradata Corporation or its affiliates.
Teradata, BYNET, DBC/1012, DecisionCast, DecisionFlow, DecisionPoint, Eye logo design, InfoWise, Meta Warehouse, MyCommerce,
SeeChain, SeeCommerce, SeeRisk, Teradata Decision Experts, Teradata Source Experts, WebAnalyst, and You’ve Never Seen Your Business Like
This Before are trademarks or registered trademarks of Teradata Corporation or its affiliates.
Adaptec and SCSISelect are trademarks or registered trademarks of Adaptec, Inc.
AMD Opteron and Opteron are trademarks of Advanced Micro Devices, Inc.
BakBone and NetVault are trademarks or registered trademarks of BakBone Software, Inc.
EMC, PowerPath, SRDF, and Symmetrix are registered trademarks of EMC Corporation.
GoldenGate is a trademark of GoldenGate Software, Inc.
Hewlett-Packard and HP are registered trademarks of Hewlett-Packard Company.
Intel, Pentium, and XEON are registered trademarks of Intel Corporation.
IBM, CICS, RACF, Tivoli, and z/OS are registered trademarks of International Business Machines Corporation.
Linux is a registered trademark of Linus Torvalds.
LSI and Engenio are registered trademarks of LSI Corporation.
Microsoft, Active Directory, Windows, Windows NT, and Windows Server are registered trademarks of Microsoft Corporation in the United
States and other countries.
Novell and SUSE are registered trademarks of Novell, Inc., in the United States and other countries.
QLogic and SANbox are trademarks or registered trademarks of QLogic Corporation.
SAS and SAS/C are trademarks or registered trademarks of SAS Institute Inc.
SPARC is a registered trademark of SPARC International, Inc.
Sun Microsystems, Solaris, Sun, and Sun Java are trademarks or registered trademarks of Sun Microsystems, Inc., in the United States and other
countries.
Symantec, NetBackup, and VERITAS are trademarks or registered trademarks of Symantec Corporation or its affiliates in the United States
and other countries.
Unicode is a collective membership mark and a service mark of Unicode, Inc.
UNIX is a registered trademark of The Open Group in the United States and other countries.
Other product and company names mentioned herein may be the trademarks of their respective owners.
THE INFORMATION CONTAINED IN THIS DOCUMENT IS PROVIDED ON AN “AS-IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER
EXPRESS OR IMPLIED, INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
NON-INFRINGEMENT. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO THE ABOVE EXCLUSION
MAY NOT APPLY TO YOU. IN NO EVENT WILL TERADATA CORPORATION BE LIABLE FOR ANY INDIRECT, DIRECT, SPECIAL, INCIDENTAL,
OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS OR LOST SAVINGS, EVEN IF EXPRESSLY ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
The information contained in this document may contain references or cross-references to features, functions, products, or services that are
not announced or available in your country. Such references do not imply that Teradata Corporation intends to announce such features,
functions, products, or services in your country. Please consult your local Teradata Corporation representative for those features, functions,
products, or services available in your country.
Information contained in this document may contain technical inaccuracies or typographical errors. Information may be changed or updated
without notice. Teradata Corporation may also make improvements or changes in the products or services described in this information at any
time without notice.
To maintain the quality of our products and services, we would like your comments on the accuracy, clarity, organization, and value of this
document. Please e-mail: teradata-books@lists.teradata.com
Any comments or materials (collectively referred to as “Feedback”) sent to Teradata Corporation will be deemed non-confidential. Teradata
Corporation will have no obligation of any kind with respect to Feedback and will be free to use, reproduce, disclose, exhibit, display, transform,
create derivative works of, and distribute the Feedback and derivative works thereof without limitation on a royalty-free basis. Further, Teradata
Corporation will be free to use any ideas, concepts, know-how, or techniques contained in such Feedback for any purpose whatsoever, including
developing, manufacturing, or marketing products or services incorporating Feedback.
Copyright © 1996-2010 by Teradata Corporation. All Rights Reserved.
Preface
Purpose
This book provides information about Teradata® Call-Level Interface Version 2 for
Channel-Attached Systems (CLIv2), which is a Teradata Tools and Utilities product. CLIv2 is
a library of routines that enable an application program to access data on a Teradata Database.
An overview of the product and its components is presented and a description of its
operational functions and features.
Audience
This book is intended for use by:
•
System and application programmers responsible for writing programs to access data on
the Teradata Database
•
System administrators
•
Database administrators and relational database developers
Supported Releases
This book supports the following releases:
•
Teradata Database 13.10
•
Teradata Tools and Utilities 13.10
•
Product Version 13.10
To locate detailed supported-release information:
1
Go to http://www.info.teradata.com.
2
Under Online Publications, click General Search.
3
Type 3119 in the Publication Product ID box.
4
Under Sort By, select Date.
5
Click Search.
6
Open the version of the Teradata Tools and Utilities ##.##.## Supported Versions
spreadsheet associated with this release.
The spreadsheet includes supported Teradata Database versions, platforms, and product
release numbers.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
3
Preface
Prerequisites
Prerequisites
The following prerequisite knowledge is required for this product:
•
Basic computer technology, database management systems, and utilities that load and
retrieve data.
•
System programming functions for z/OS or VOS3, depending on the operating system
that you are using to interface to the Teradata Database.
Changes to This Book
The following changes were made to this book in support of the current release. Changes are
marked with change bars. For a complete list of changes to the product, see the Release
Definition associated with this release.
Date and Release
Description
February 2010
Updated Teradata Call-Level Interface Version 2 Reference for ChannelAttached Systems to reflect Teradata products added and updated for
Teradata Tools and Utilities Release 13.10.
13.10
• Added a new Trusted-session-support query that allows applications to
learn of the Trusted Session feature. See “Trusted-session-support” on
page 335.
• Added a new LOB-Name-support query that allows applications to
learn of LOB names. See “LOB-Name-support” on page 335.
• Added a new ElicitName parcel to support LOBs in Teradata Database.
See “ElicitName” on page 432.
• Added StmtInfo UDT Transforms off. See “Transforms-off ” on
page 182.
• Added support for database object names. See “Column-info” on
page 80.
• Added support for StmtInfo PD as STRUCT. See “Period-as-Struct” on
page 131.
• Honored Mandatory Access Controls. See “Parcel Flavors” on page 473
• Added support for Trusted Request. See “Trusted-request” on page 182.
• Added support for FastExportNoSpool. See “Activity Type” on
page 425.
• Added support for Check Workload. See “Utility-workload” on
page 195.
• Discontinued support for z/VM.
• Accommodated latest direction in external release numbering. See
“CLIv2-release” on page 300; “TDP-release” on page 302; and
“Request-message-release” on page 316.
• Removed Teradata Workload Manager and Teradata Manager
references. Products discontinued.
4
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Preface
Changes to This Book
Date and Release
Description
August 2008
13.00
• Added a new Column-correlation-support query to define whether SQL
CREATE, UPDATE, DROP, and HELP CORRELATION statements are
supported. See “Column-correlation-support” on page 333.
• Added a new field (PBTIFTP) to the full-layout section of
“StatementInformation Responses” on page 459 to support Teradata
Database changes.
• Clarified the performance of the Session-character-set query. See
“QEPITEM Field” on page 294.
• Added support for twelve new character sets supported by Teradata
Database. See “Character Set Pointer” on page 78 and “Logon Pointer”
on page 110.
• Added a new StatementInformation field for requests so TDP can
indicate its presence to CLIv2. See “StatementInformation Requests” on
page 490 and “StatementInformationEnd Returns” on page 495.
• Corrected the default value of for DECIMALDIGITS from 15 to 18. See
“Max-decimal-returned” on page 113, “HSHSPB Assembler Source” on
page 234, and “QEPITEM Field” on page 294.
• Added a new Utility-session query that returns the database node-id
associated with an active session (currently used only for internal
processing). See “Utility-session” on page 334.
• Changed the HSHSPB default for the distributed assembler source of
IBCFBRL to match the distributed macro value, even though they are
independent values, to avoid confusion if one of the values is
customized. See Table 7 on page 236.
• In support of temporal tables and queries, added a new field to the
ConfigurationResponse parcel and the StatementInformation
Responses response parcel, and PBTIFTC in the “Full-Layout” section.
• Corrected a reference to MODIFY TABLE to ALTER TABLE. See
“Activity Type” on page 425.
• Added an overview to describe security considerations for CLIv2. See
“Security Considerations” on page 29.
• Clarified character set values. See “CHARSET” on page 408.
• Added a new Database-access-path query that returns the access path
for a particular session. See “Database-access-path” on page 334.
• Added periodic data types. See Table 1 on page 35 and Table 65 on
page 424.
• Corrected pad byte information in the ElicitFile parcel description. See
“ElicitFile” on page 431.
• Clarified the impact of BLOBs and CLOBs. See “DBCHCL CRQ
Function” on page 258.
• Corrected the size of the Length element for the DataInfoX and
PrepInfoX parcels. See “DataInfoX” on page 430 and “PrepInfoX” on
page 446.
• Clarified the impact of user-defined functions (UDFs), which use the
ElictData, ElicitFile, and ElicitName parcels. See “Communicating with
the Teradata Database” on page 33 and “Continuing a Teradata SQL
Request” on page 61.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
5
Preface
Additional Information
Additional Information
Additional information that supports this product and Teradata Tools and Utilities is
available at the Web sites listed in the following table. In the table, mmyx represents the
publication date of a manual, where mm is the month, y is the last digit of the year, and x is an
internal publication code. Match the mmy of a related publication to the date on the cover of
this book to ensure that the publication selected supports the same release.
Type of Information
Description
Access to Information
Release overview
Use the Release Definition for the following
information:
1 Go to http://www.info.teradata.com.
• Overview of all of the products in the
release
• Information received too late to be
included in the manuals
• Operating systems and Teradata
Database versions that are certified to
work with each product
• Version numbers of each product and
the documentation for each product
• Information about available training
and the support center
3 In the Publication Product ID box, type 2029.
Late information
6
2 Under Online Publications, click General Search.
4 Click Search.
5 Select the appropriate Release Definition from
the search results.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Preface
Additional Information
Type of Information
Description
Access to Information
Additional product
information
Use the Teradata Information Products
web site to view or download specific
manuals that supply related or additional
information to this manual.
1 Go to http://www.info.teradata.com.
2 Under the Online Publications subcategory,
Browse by Category, click Data Warehousing.
3 Do one of the following:
• For a list of Teradata Tools and Utilities
documents, click Teradata Tools and Utilities,
and then select an item under Releases or
Products.
• Select a link to any of the data warehousing
publications categories listed.
Other books related to Teradata Call-Level
Interface Version 2 for Channel-Attached Systems
are:
• Teradata Director Program Reference
B035-2416-mmyx
• IBM IMS/DC Interface for Teradata Reference
B035-2447-mmyx
• IBM CICS Interface for Teradata Reference
B035-2448-mmyx
• Teradata Tools and Utilities Installation Guide
for IBM z/OS
B035-2458-mmyx
• Messages
B035-1096-mmyx
• Teradata Tools and Utilities Command Summary
B035-2401-mmyx
CD-ROM images
Access a link to a downloadable CD-ROM
image of all customer documentation for
this release. Customers are authorized to
create CD-ROMs for their use from this
image.
1 Go to http://www.info.teradata.com.
2 Under the Online Publications subcategory,
Browse by Category, click Data Warehousing.
3 Click CD-ROM List and Images.
4 Follow the ordering instructions.
Ordering
information for
manuals
Use the Teradata Information Products
web site to order printed versions of
manuals.
1 Go to http://www.info.teradata.com.
2 Under Print & CD Publications, click How to
Order.
3 Follow the ordering instructions.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
7
Preface
Additional Information
Type of Information
Description
Access to Information
General information
about Teradata
The Teradata home page provides links to
numerous sources of information about
Teradata. Links include:
1 Go to Teradata.com.
2 Select a link.
• Executive reports, case studies of
customer experiences with Teradata,
and thought leadership
• Technical information, solutions, and
expert advice
• Press releases, mentions, and media
resources
8
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Table of Contents
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3
Purpose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3
Audience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3
Supported Releases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3
Prerequisites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4
Changes to This Book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4
Additional Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6
Chapter 1:
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Security Considerations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Logical Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Data Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Communicating with the Teradata Database. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Character Sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Large Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Executing Programs in Teradata Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
34
38
38
Parallel Processing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Multi-Statement Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Multi-Request Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Multi-Session Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
40
40
40
41
Multi-application Management. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Coordination with Other Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Common Routines Supporting CLIv2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Chapter 2:
Session Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Preparing to Use CLIv2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Setting DBCAREA Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
9
Table of Contents
Compatibility Options. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49
Character Sets. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .50
Return Codes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53
Messages for Return Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .54
Explicitly Establishing a Session . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .55
Password Expiration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57
Executing a RunStartUp Request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57
Submitting a Teradata SQL Request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .59
Fetching the Response for a Request. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .60
Continuing a Teradata SQL Request. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61
Rewinding to the Beginning of a Response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .62
Ending a Request. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .63
Aborting a Request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .63
Terminating a Session. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .64
Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .64
Single Session . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .64
Multiple Sessions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .65
Implicitly Establishing a Session . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .66
Chapter 3:
DBCAREA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .67
Field Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .67
Anticipated Number of Concurrent Sessions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .73
APH-response-OK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .74
Change Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .75
Character Set Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .78
Column-info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .80
Connect Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .81
Continued-characters-state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .82
Continued-data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .83
Country Id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .84
Current Request Buffer Length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .86
Current Response Buffer Length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .87
C2S Conversion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .87
Data-encryption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .89
Date Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .89
Delegate-user-identity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .91
10
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Table of Contents
Extension Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Eyecatcher . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Fetch Data Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Fetch Maximum Data Length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Fetch Parcel Flavor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Fetch Returned Data Length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Function. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Input CLIv2 Connection Id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Input CLIv2 Request Id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Input TDP Path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Keep Response. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Language Conformance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Language Id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Locate Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Logon Length. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Logon Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Max-decimal-returned . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Maximum Parcel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Mechanism-data-encoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Mechanism-data-len. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Mechanism-data-ptr. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Mechanism-name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Message Area Length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Message Area Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Message Charset Used . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Message Length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Message Return Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
Message Text Length. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
Message Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
Open Requests. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
Output CLIv2 Connection Id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
Output CLIv2 Request Id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Output Host Id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
Output TDP Path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
Output TDP Session Id. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
Parcel Mode Fetch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
Period-as-Struct . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
11
Table of Contents
Positioning-action. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .132
Positioning-statement-number . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .133
Positioning-value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .134
Protocol-Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .135
Refresh-cached-data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .136
Request Buffer Length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .137
Request Length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .138
Request Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .139
Request-parcel-format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .140
Request Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .142
Request Processing Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .143
Request-token . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .145
Response Buffer Length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .145
Response Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .146
Result-sets-OK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .148
Return Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .149
Return-identity-data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .150
Return-objects-as . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .151
Return-statement-info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .152
Return-result-to . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .153
Return Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .154
Route Description Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .156
Run Length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .156
Run Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .158
Save Response Buffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .159
Segment Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .160
Session-desc-length. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .161
Session-desc-pointer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .162
Session Status. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .164
Set Character Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .165
Statement-status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .166
S2C Conversion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .167
TDP-receipt-timestamp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .168
TDP Request Number . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .169
Tell if Delay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .170
Time1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .171
Time2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .171
Time3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .172
12
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Table of Contents
Time4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
Time5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
Time1-status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
Time2-status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
Time3-status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
Time4-status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
Time5-status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
Timing-precision. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
Total Length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
Transaction Semantics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
Transforms-off . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
Trusted-request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
Two Response Buffers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
Use-default-conn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
Use Presence Bits. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
Using-data-count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
Using Data Length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
Using Data Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
Using-data-length-vector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
Using-data-pointer-vector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
Utility-workload . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
Variable Length Fetch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
Variable Length Request. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
Wait During Delay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
Wait-exclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
Wait For Response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
Workload-length. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
Workload-pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
2PC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
Chapter 4:
DBCAREA Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
DBCAIRX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
DBCAIRX Elements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
DBCACNX. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
13
Table of Contents
Chapter 5:
Release Tapes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .229
Finding Files on the Release Tape . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .229
DBCAREA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .229
DBCAIRX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .229
DBCACNX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .230
DBCHMEP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .230
DBCHQEP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .230
DBCHQER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .231
DBCHUEP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .231
HSHSPB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .231
TRDSPB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .232
TC2XPH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .232
TRD0LENU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .232
System Parameter Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .232
Default Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .232
Overriding the Defaults from an Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .233
HSHSPB. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .233
Where to Find HSHSPB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .233
Administration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .233
Changing Options Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .234
HSHSPB Assembler Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .234
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .234
Chapter 6:
Common Routines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .239
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .239
Uses of CLIv2 Parameters: Tabular Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .240
Summary of CLIv2 Routine Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .241
DBCHINI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .242
DBCHCL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .244
DBCHCL Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .246
DBCHCL CON Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .247
DBCHCL RSUP Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .250
DBCHCL IRQ Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .252
DBCHCL IWPF Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .255
DBCHCL CRQ Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .258
DBCHCL CMD Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .260
14
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Table of Contents
DBCHCL ABT Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DBCHCL FET Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DBCHCL ERQ Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DBCHCL REW Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DBCHCL DSC Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DBCHCLN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
263
265
267
269
270
271
Chapter 7:
Other CLIv2 Routines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
Uses of CLIv2 Routines: Tabular Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
Parameters of CLIv2 Routines: Tabular Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DBCHME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DBCHMEC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DBCHPEC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DBCHSAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DBCHUE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DBCHUEC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DBCHWAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DBCHWL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
274
276
278
279
280
281
283
284
286
Chapter 8:
CLIv2 Query Routine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
DBCHQE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Usage Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Available-logon-mechanisms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CLIv2-limits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SQL-limits. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Integer/decimal-enlargement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Result-sets-support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
QueryBand-support. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Merge-into-usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Logging-errors-usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Procedure-data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Utility-session. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Transforms-off-usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Transforms-request-support. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
289
290
319
321
322
328
329
330
331
331
332
334
336
336
15
Table of Contents
Chapter 9:
Response Sequences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .339
Buffers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .339
Request Buffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .339
Response Buffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .340
Move Area. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .341
Typical Teradata SQL Response Sequences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .342
Typical Teradata Response Sequences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .342
Submitting Requests In Field Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .342
Submitting Requests In Record Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .345
Submiting Requests—MultipartIndicator Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .346
Submitting Requests In Indicator Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .348
Parcel Sequences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .349
Issuing Requests—Field Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .350
Issuing Requests—Record Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .355
Issuing Requests—MultipartIndicator Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .358
Issuing Requests—Indicator Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .361
Parcels in Normal Sequences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .364
Parcels That Indicate Problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .364
Field Layouts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .364
Error Parcels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .365
Failure Parcels. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .365
Chapter 10:
Error and Failure Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .367
Error and Failure Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .367
Chapter 11:
Crash and Recovery. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .369
TDP or Client System Crashes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .369
Unusable CP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .369
AP Reset Containment (APRC). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .370
Teradata Database Crash and Recovery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .370
What the Application Does . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .371
Tell and Wait . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .371
Just Wait . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .372
16
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Table of Contents
Tell and Logoff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373
Chapter 12:
Character Set Codepoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
Description of Codepage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
EBCDIC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
EBCDIC037_0E. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
EBCDIC273_0E. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
EBCDIC277_0E. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
HANGULEBCDIC933_1II. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
KANJIEBCDIC5026_0I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385
KANJIEBCDIC5035_0I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391
KATAKANAEBCDIC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397
SCHEBCDIC935_2IJ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
TCHEBCDIC937_3IB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
Chapter 13:
User-Defined Character Sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407
Directives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CHARSET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
END. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
UNICODE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
407
408
411
411
Chapter 14:
Message Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
Suffixes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
Comment Formatting. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415
Keywords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
17
Table of Contents
Chapter 15:
Parcels for Basic Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .419
Parcel Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .419
Parcel Types. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .420
Request Parcels: Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .421
Response Parcels: Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .421
Common Parcel Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .424
Data Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .424
Activity Type. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .425
Parcel Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .428
DataInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .429
DataInfoX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .430
ElicitData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .431
ElicitDataReceived . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .431
ElicitFile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .431
ElicitName . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .432
EndMultipartRecord . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .433
EndRequest. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .433
EndStatement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .434
EndWith . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .434
Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .435
Failure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .435
Field. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .436
Flagger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .437
FormatEnd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .438
FormatStart. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .438
MultipartRecord. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .439
NullField . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .441
OK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .441
PosEnd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .442
Position . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .443
PosStart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .443
PrepInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .444
PrepInfoX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .446
RecEnd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .450
Record . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .450
Record (In Indicator Mode) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .451
Record (In Record Mode) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .453
RecStart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .454
ResultSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .455
ResultSummary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .456
18
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Table of Contents
Size. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SizeEnd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SizeStart. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
StatementInformation Responses. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
StatementInformationEnd Responses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Success. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
TitleEnd. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
TitleStart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
With. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
458
458
458
459
466
467
468
468
469
Chapter 16:
Parcels for Advanced Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
Parcel Header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
Parcel Flavors. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473
Parcel Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473
Request Parcels: Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474
Response Parcels: Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474
Parcel Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CursorDBC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CursorHost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DataInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DataInfoX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
EndMultipartData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
EndMultipartIndicData. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
FMReq. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
IndicData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
IndicReq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
MultipartData. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
MultipartIndicData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
MultipartRequest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Req. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SP Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
StatementInformation Requests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
StatementInformationEnd Returns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
475
475
476
477
477
478
480
480
480
481
482
483
484
484
485
489
489
490
495
19
Table of Contents
Chapter 17:
Stored Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .497
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .497
SQL Stored Procedures. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .497
Using the Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .500
External Stored Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .500
Using the Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .500
Dynamic Result Sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .501
Chapter 18:
Resolver Base Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .503
Using the Resolver Base Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .503
Request Parcel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .504
Responses. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .505
Chapter 19:
2PC Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .507
Sync Point Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .507
Enabling 2PC Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .508
Starting 2PC Sessions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .508
Using Coordinators to Synchronize Processing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .509
The 2PC Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .509
In-Doubt Resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .510
CLIv2 Application Requirements for 2PC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .511
Appendix A:
How to Read Syntax Diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .513
Syntax Diagram Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .513
Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .515
Multiple Legitimate Phrases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .517
Sample Syntax Diagram. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .518
Diagram Identifier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .518
20
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Table of Contents
Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
21
Table of Contents
22
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
List of Figures
Figure 1: CLIv2: Logical Structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Figure 2: CLIv2: Data Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Figure 3: DBCAIRX Header Fields (Eyecatcher is ‘IRX8‘) . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
Figure 4: Deprecated DBCAIRX Header Fields (Eyecatcher = ‘IRX‘) . . . . . . . . . . . . . . . . . . 210
Figure 5: Deprecated DBCAIRX Header Fields (Eyecatcher = ‘DBCX‘) . . . . . . . . . . . . . . . . 210
Figure 6: DBCAIRX Element When Eyecatcher is 'IRX8‘ and Level 1. . . . . . . . . . . . . . . . . . 211
Figure 7: Deprecated DBCAIRX Element Containing Actual Data . . . . . . . . . . . . . . . . . . . . 211
Figure 8: DBCAIRX Element When Eyecatcher is 'IRX8‘ and Level 0. . . . . . . . . . . . . . . . . . 212
Figure 9: Deprecated DBCAIRX Element When Eyecatcher is 'IRX' or 'DBCX' . . . . . . . . . 212
Figure 10: DBCACNX Header Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
Figure 11: DBCACNX Element Fields When Level = 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
23
List of Figures
24
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
List of Tables
Table 1: Teradata SQL Data Type and Mainframe Internal Format . . . . . . . . . . . . . . . . . . . . 35
Table 2: Order of the DBCAREA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Table 3: Order of the Enlarged DBCAREA When Level > 0. . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Table 4: Change Options Scanning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Table 5: Length of Returned Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Table 6: HSHSPB Source Default Settings That Are Safe to Change . . . . . . . . . . . . . . . . . . . 234
Table 7: HSHSPB Source Default Settings That Should Probably Not Be Changed . . . . . . 236
Table 8: HSHSPB Source Default Settings That Should Never Be Changed . . . . . . . . . . . . . 237
Table 9: Uses of Routine and Function. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
Table 10: Parameters of CLIv2 Routines. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
Table 11: DBCAREA Input Fields Required for the Connect Function . . . . . . . . . . . . . . . . 247
Table 12: DBCAREA Input Fields Optional for the Connect Function. . . . . . . . . . . . . . . . . 248
Table 13: DBCAREA Output Fields Always Set for the Connect Functions . . . . . . . . . . . . . 249
Table 14: DBCAREA Output Fields Set by Successful Connect Functions . . . . . . . . . . . . . . 249
Table 15: DBCAREA Input Fields Required for the RunStartup Function . . . . . . . . . . . . . . 250
Table 16: DBCAREA Output Fields Optional for the RunStartup Function . . . . . . . . . . . . 250
Table 17: DBCAREA Output Fields Always Set by the RunStartup Function . . . . . . . . . . . 251
Table 18: DBCAREA Output Fields Set by Successful RunStartup Functions . . . . . . . . . . . 251
Table 19: DBCAREA Input Fields Required for the Initiate Request Function . . . . . . . . . . 252
Table 20: DBCAREA Input Fields Optional for the Initiate Request Function . . . . . . . . . . 252
Table 21: DBCAREA Input Fields Required for Initiate With Protocol-function . . . . . . . . 255
Table 22: DBCAREA Input Fields Optional for Initiate With Protocol-function . . . . . . . . 256
Table 23: DBCAREA Output Fields always set by Initiate With Protocol-function. . . . . . . 257
Table 24: DBCAREA Output Fields Set by Successful Initiate With Protocol-function . . . 257
Table 25: DBCAREA Input Fields Required for the Continue Request Function . . . . . . . . 258
Table 26: DBCAREA Input Fields Optional for the Continue Request Function. . . . . . . . . 259
Table 27: DBCAREA Output Fields always set by the Continue Request Function . . . . . . . 259
Table 28: DBCAREA Output Fields set by Successful Continue Request Functions . . . . . . 259
Table 29: DBCAREA Input Fields Required for the Command Function . . . . . . . . . . . . . . 260
Table 30: DBCAREA Input Fields Optional for the Command Function. . . . . . . . . . . . . . . 261
Table 31: DBCAREA Output Fields always set by the Command Function . . . . . . . . . . . . . 261
Table 32: DBCAREA Output Fields set by Successful Command Functions . . . . . . . . . . . . 261
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
25
List of Tables
Table 33: DBCAREA Output Fields always set by the Fetch Function . . . . . . . . . . . . . . . . . .266
Table 34: DBCAREA Output Fields set by Successful Fetch Functions . . . . . . . . . . . . . . . . . .266
Table 35: DBCAREA Input Fields Required for the EndRequest Function . . . . . . . . . . . . . .267
Table 36: DBCAREA Input Fields Optional for the EndRequest Functions . . . . . . . . . . . . . .267
Table 37: DBCAREA Output Fields Always Set for the EndRequest Function . . . . . . . . . . . .267
Table 38: DBCAREA Output Fields Set by Successful EndRequest Functions . . . . . . . . . . . .268
Table 39: Uses of CLIv2 Routines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .273
Table 40: Parameters of CLIv2 Routines. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .274
Table 41: QEPITEM Field Valid Item Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .294
Table 42: Response Parcel Sequence in Field Mode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .342
Table 43: Response parcel sequence in Record Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .345
Table 44: Response Sequence in MultipartIndicator Mode . . . . . . . . . . . . . . . . . . . . . . . . . . .346
Table 45: Response Parcel Sequence Indicator Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .348
Table 46: Error and Failure Codes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .367
Table 47: Teradata EBCDIC Codepage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .376
Table 48: Teradata EBCDIC037_0E Codepage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .377
Table 49: Teradata EBCDIC273_0E Codepage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .378
Table 50: Teradata EBCDIC277_0E Codepage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .379
Table 51: Single-byte Teradata HANGULEBCDIC933_1II Codepage . . . . . . . . . . . . . . . . . .380
Table 52: Hangul Codepoint Assignments for HANGULEBCDIC933_1II. . . . . . . . . . . . . . .381
Table 53: Single-byte Teradata KANJIEBCDIC5026_0I Codepage . . . . . . . . . . . . . . . . . . . . .386
Table 54: Kanji Codepoint Assignments for KANJIEBCDIC5026_0I . . . . . . . . . . . . . . . . . . .386
Table 55: Single-byte Teradata KANJIEBCDIC5035_0I Codepage . . . . . . . . . . . . . . . . . . . . .392
Table 56: Kanji Codepoint Assignments for KANJIEBCDIC5035_0I . . . . . . . . . . . . . . . . . . .393
Table 57: Single-byte Teradata KATAKANAEBCDIC Codepage. . . . . . . . . . . . . . . . . . . . . . .398
Table 58: Katakana Codepoint Assignments for KATAKANAEBCDIC . . . . . . . . . . . . . . . . .399
Table 59: Single-byte Teradata SCHEBCDIC935_2IJ Codepage . . . . . . . . . . . . . . . . . . . . . . .404
Table 60: Single-byte Teradata TCHEBCDIC937_3IB Codepage . . . . . . . . . . . . . . . . . . . . . .406
Table 61: Language Module Suffixes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .414
Table 62: Language and Country Keywords. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .416
Table 63: Parcel flavors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .419
Table 64: Response Parcel Flavors, Names, And Uses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .421
Table 65: Data Type Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .424
Table 66: Activity Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .425
Table 67: PrepInfoX Data Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .448
Table 68: ResultSummary Parcel Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .456
26
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
List of Tables
Table 69: Full-layout Fields for Responses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461
Table 70: PBTIFDT Additional Data Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465
Table 71: Limited-layout Fields for Responses. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466
Table 72: Statistic-layout fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466
Table 73: Original Parcel Header (TPH0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472
Table 74: Alternate Parcel Header (TPH1). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472
Table 75: Parcel Flavors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473
Table 76: Request Parcel Flavors, Names, And Uses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474
Table 77: Response Parcel Flavors, Names, And Uses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474
Table 78: Full-layout Fields for Requests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492
Table 79: Limited-layout Fields for Requests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493
Table 80: Untransformed limited-layout Fields for Requests . . . . . . . . . . . . . . . . . . . . . . . . . 494
Table 81: Untransformed imited-layout Fields for Requests . . . . . . . . . . . . . . . . . . . . . . . . . 494
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
27
List of Tables
28
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
CHAPTER 1
Introduction
This chapter discusses the following general aspects of Call-Level Interface Version2 (CLIv2):
•
Overview
•
Logical Structure
•
Data Structures
•
Communicating with the Teradata Database
•
Parallel Processing
•
Multi-application Management
•
Coordination with Other Events
•
Common Routines Supporting CLIv2
Overview
CLIv2 is a collection of callable service routines that provide the interface between
applications and the Teradata Director Program (TDP) on an IBM mainframe client. TDP is
the interface between CLIv2 and Teradata Database.
CLIv2 can operate with all versions of z/OS, VOS3, MSP, CICS, and IMS. CLIv2 sends
requests to Teradata Database, and provides the application with a response returned from
the server.
CLIv2 provides support for the following:
•
Managing multiple serially-executed requests on a session
•
Managing multiple simultaneous sessions to the same or different Teradata Databases
•
Using cooperative processing so that the application can perform operations on the client
and Teradata Database at the same time
•
Communicating with two-phase commit coordinators for CICS and IMS transactions
•
Generally insulating the application from details in communicating with Teradata
Database
Security Considerations
Because CLIv2 callable routines are simply subroutines of an application, they operate in the
same execution environment as the application.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
29
Chapter 1: Introduction
Logical Structure
•
No special operating system authorization is required (for example, Authorized Program
Facility [APF] for z/OS). CLIv2 functions no differently if an application is authorized.
•
No datasets or files are accessed, so system access rights for the current system userid are
not implicitly extended by CLIv2 to other objects. CLIv2 accesses only its own load
modules from the normal system module search order.
•
No devices or communication facilities, such as TCP/IP, are accessed. CLIv2
communicates only with TDP. The CLIv2 internal trace is not recorded by the operating
system unless permitted by CLIv2 customization in HSHSPB.
•
Neither application SQL data nor Teradata Database logon passwords are retained beyond
their need, nor are they passed anyplace, except to TDP. Such data is not included in any
internal trace. The exception is storage capture initiated outside CLIv2, such as a z/OS
ABEND dump.
•
Only minimal standard operating system services or their equivalent in specialized
environments, such as CICS, are used.
Preprocessors
Many applications can use one of the Teradata SQL preprocessors and thus be shielded from
the details of the CLIv2 interface. Applications coded in languages for which Teradata does
not provide a preprocessor, or applications requiring features not provided by the
preprocessor, call CLIv2 directly.
TDP
TDP is a Teradata product that serves as an interface between CLIv2 and Teradata Database. It
executes on the same mainframe as a different job or virtual machine than the application and
CLIv2. An individual TDP is associated with one logical Teradata Database; however, any
number of TDPs can simultaneously operate and be accessed by CLIv2 on the same
mainframe. Each TDP is referred to by the application with an identifier called the TDPid
(TDP2, for example) that is unique in a mainframe.
Teradata Database implements the actual relational database that processes requests received
from CLIv2 by way of TDP.
Logical Structure
Applications that manipulate data on Teradata Database communicate with it indirectly by
means of CLIv2. The application calls CLIv2, which acts as a subroutine of the application,
sharing the same environment. CLIv2 executes as part of the same job, terminal session,
virtual machine, or transaction.
Figure 1 illustrates the logical structure of the client-server interface.
30
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 1: Introduction
Logical Structure
Figure 1: CLIv2: Logical Structure
Application
Program
CLIv2
Stub
Requests
Responses
CLIv2
Runtime
TDP
Teradata
Database
2414A025
CLIv2 Stub
The CLIv2 stub is a routine that is generally included with the application. It defines all the
CLIv2 routines described in this book for use by the application. The stub locates the data
structure called the CLIv2 System Parameter Block (HSHSPB). Then it locates and invokes
the CLIv2 runtime routines.
24-Bit and 31-Bit Addressing
CLIv2 fully supports applications using both 24-bit and 31-bit addressing. CLIv2 can reside in
either type of storage and can be passed control in either mode. If called in 24-bit addressing
mode, CLIv2 allocates 31-bit storage for internal use; therefore, limited VirtualStorage
Constraint Relief occurs for 24-bit applications.
If the application calls CLIv2 in 31-bit addressing mode to initiate various requests, the
request and response buffers will be allocated in 31-bit storage. This mode requires that
subsequent CLIv2 calls to obtain these responses also be in 31-bit addressing mode so that the
previously allocated buffers are accessible.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
31
Chapter 1: Introduction
Data Structures
Runtime
The runtime includes all CLIv2 programs called when an application runs. It resides in a
module called DBCHMODS. While it can be included with an application, it is generally
located by the stub during execution. Not only does this eliminate the need to alter the
application when maintenance is applied to the HSHSPB, but it also reduces the size of the
application.
Data Structures
Figure 2 shows the data structures used in the communication between the application
program and CLIv2:
•
DBCAREA and extensions
•
CLIv2 system parameter block (HSHSPB)
•
Message definitions
Figure 2: CLIv2: Data Structures
Application
CLIv2
Stub
DBCAREA
Extensions
HSHSPB
DBCAREA
User-Defined
Character
Sets
Message
Definitions
CLIv2
Runtime
2417A008
DBCAREA
The DBCAREA is the communication structure between an application and CLIv2.
Applications use it to forward control and data information. CLIv2 uses it to return control
and data information. An application may use a single DBCAREA or multiple DBCAREAs.
CLIv2 retains no knowledge of a particular DBCAREA across multiple CLIv2 calls. CLIv2 is
concerned only with the values for DBCAREA that are meaningful to the routine called.
32
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 1: Introduction
Communicating with the Teradata Database
DBCAREA Extensions
A DBCAREA extension is addressed by a DBCAREA, and allows specialized applications to
provide additional information to CLIv2. The extensions may be chained together, thus
allowing more than one extension for a single request.
HSHSPB
HSHSPB (CLIv2 system parameter block) is a data structure that is examined during
initialization. HSHSPB is the source of the default DBCAREA values if these values are not set
in the DBCAREA by an application.
User Defined Character Sets
User-defined character sets are character sets not supplied by a server but rather defined by a
customer. In addition to be defined to a server, they must also be described to CLIv2. For
more information, see Chapter 13: “User-Defined Character Sets.”
Message Definitions
A message definition defines the text of all CLI messages in a particular language. The message
definition for the specified language is used when a message is returned in the DBCAREA. For
more information, see “Chapter 14 Message Definitions.”.
Communicating with the Teradata Database
Information flow between an application and Teradata Database functions is as follows:
•
An application sends requests containing Teradata SQL statements and data to Teradata
Database.
•
Teradata Database performs the activities requested by the application, such as selecting,
updating, inserting, and deleting data, then returns response information to the
application.
Sessions
A session is an authenticated, logical connection between the application and a Teradata
Database. Sessions are explicitly connected and disconnected, and while connected provide
the vehicle for all communication between an application and Teradata Database.
Teradata Partitions
Teradata Database supports several different types of request processors, or partitions. A
partition is specified when a session is established by the CLIv2 Run String addressed in the
DBCAREA. CLIv2 operates identically for all partitions. Although the structures of requests
and responses are the same for all partitions, the contents vary by partition. The following
partitions are supported by the server for general use:
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
33
Chapter 1: Introduction
Communicating with the Teradata Database
•
DBC/SQL - The partition that processes SQL requests. The remaining chapters of this
manual assume the use of this partition.
•
Monitor - The partition that processes performance monitor requests, available only for
systems running at least Teradata Database for UNIX, Version 2 Release 2, or Teradata
DBS for TOS, Version 1 Release 5. Use of this partition is described in Performance
Management, Workload Management API: PM/API and Open API, and Teradata Manager
User Guide.
•
RBM (Resolver Base Module) - The partition that processes two-phase commit (2PC) indoubt resolution requests, available only for systems running Teradata Database for
UNIX, Version 2 Release 2, or Teradata DBS for TOS, Version 1 Release 5. See Chapter 18:
“Resolver Base Module.”
Requests and Responses
Requests are sent by an application to Teradata Database to initiate an action. Responses are
sent by Teradata Database to the application to reflect the results of that action. Both requests
and responses are associated with an established session. One or more Teradata SQL
statements that are submitted to Teradata Database at the same time are called a Teradata
SQL request. Having several statements in the same request saves message transfer time, a
factor of interest to CPU-bound and I/O-bound programs or sites, since, for example, a twostatement multi-statement request uses half the CPU time of two single statement requests.
Most requests contain all of the data needed for their completion, but a few require additional
data. For example, requests that insert a large database field, such as a picture or a program
that runs within the database, first prompt CLIv2 to supply the data or program. The
application then continues the request by providing the data or program.
Parcels
Parcels are the basic unit of information for requests and responses. Although CLIv2 allows
applications to manipulate request parcels directly, most applications let CLIv2 handle them.
However, applications must process responses parcel by parcel. Each type of parcel is uniquely
identified by its flavor. For more information, see Chapter 15: “Parcels for Basic
Applications.”
When the request consists of multiple statements, a successful response contains the results
for all statements. The parcels for each statement begin with either a Success, OK, or
ResultSummary parcel (depending on the Response-mode or Statement-status.) and end with
an EndStatement parcel. For unsuccessful statements, the Error or Failure parcel contains the
statement number.
Three response parcels (ElicitData, ElicitFile, and ElicitName) prompt CLIv2 to provide
additional information needed to complete requests. The application continues the request by
providing the additional information.
Character Sets
A character set specifies which characters are available (for example, whether the Japanese
characters are available) and how those characters are represented (for example, as EBCDIC
34
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 1: Introduction
Communicating with the Teradata Database
or ASCII). Character data in logon strings, request data, response data, and error messages are
affected by which character set is being used.
For more information about character sets, see “Character Sets” on page 50.
Response-mode
The types of parcels returned in a response that selects database fields are determined when
the request is made. Four such response modes exist:
•
Field mode, which returns database fields formatted as character data. (Large Objects
[LOBs] return errors.)
•
Record Mode, which returns non-null fields as unformatted data. (LOBs return errors.)
•
Indicator Mode, which returns all fields as unformatted data. (LOBs return errors.)
•
MultipartIndicator mode, which returns all fields, including LOBs, as unformatted data
with additional character set detail.
When unformatted data is returned for Record, MultipartIndicator, and Indicator modes, it is
presented in a data structure that is meaningful to the application. Table 1 describes the data
structure for applications on channel-attached systems.
Table 1: Teradata SQL Data Type and Mainframe Internal Format
Teradata SQL Data
Type
Mainframe Internal Format
BYTEINT
8-bit signed integer (1 byte)
SMALLINT
16-bit signed integer (2 bytes)
INTEGER
32-bit signed integer (4 bytes)
FLOAT
64-bit floating point number with 1 bit for fraction sign, 7 bits for
unsigned power of 16 exponent (stored as actual + hex 40) and 56 bits for
unsigned fraction (8 bytes)
REAL
DOUBLE
PRECISION
DECIMAL (x, y)
NUMERIC
x-digit, signed, packed decimal in which the rightmost nibble represents
the sign (“+” is hex A, E, F or C; “-” is hex B or D) and the remaining
nibbles represent the digits (hex 0-9) which are left-padded with zero digit
if x is even (total of (x+2)/2 bytes; 8 bytes)
CHAR (n)
n bytes (either n single byte characters; (n-2)/2
double byte characters, preceded by the Shift-out control character, X'0E',
and followed by the Shift-in control character, X'0F'; or some mixture of
the two not exceeding n bytes). n defaults to 1 if no value is specified.
BIGINT
Represents a signed, binary integer value from
-9,223,372,036,854,775,808 to 9,223,372,036,854,775,807.
BIGINT values are stored as eight bytes with the least significant byte first.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
35
Chapter 1: Introduction
Communicating with the Teradata Database
Table 1: Teradata SQL Data Type and Mainframe Internal Format (continued)
Teradata SQL Data
Type
VARCHAR (n)
(actual length k,
where 0 <= k <= n )
Mainframe Internal Format
SMALLINT (2 bytes) containing actual count k, followed by k bytes
(either k single byte characters; (k-2)/2 double byte characters, preceded
by the Shift-out control character, X'0E', and followed by the Shift-in
control character, X'0F'; or some mixture of the two not exceeding k
bytes)
LONG VARCHAR
equivalent to VARCHAR (32000)
GRAPHIC(n)
GRAPHIC(n), n characters (2 < = n bytes), n defaults to 1 if no value is
specified.
VARGRAPHIC(n)
(actual length k, where
0 <= k <= n )
SMALLINT (2 bytes) containing actual count k, followed by k characters
(total of 2 + 2 < = k bytes)
LONG
VARGRAPHIC
equivalent to VARGRAPHIC(16000)
BYTE (n)
n bytes, n defaults to 1 if no value is specified.
VARBYTE (n)
16-bit SMALLINT (2 bytes), actual count k, followed by k bytes (total of
k+2 bytes)
(actual length k,
where 0 <= k <= n )
DATE
32-bit signed integer (4 bytes); DATE is calculated as follows:
(year-1900)*10000 + month*100 + day
PERIOD (DATE)
Two 4-byte signed integers, each calculated as:
( year – 1900 ) × 10000 + ( month × 100 ) + day
The first integer is the period's beginning date; the second integer is the
period's ending date.
PERIOD (TIME)
Two 6-byte areas, each consisting of the following:
• A 4-byte signed integer for the number of seconds (scaled with the
rightmost six decimal digits that contain fractional seconds)
• A 1-byte unsigned integer for the hours
• A 1-byte unsigned integer for the minutes
The first area is the beginning time for the period; the second area is the
ending time.
36
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 1: Introduction
Communicating with the Teradata Database
Table 1: Teradata SQL Data Type and Mainframe Internal Format (continued)
Teradata SQL Data
Type
Mainframe Internal Format
PERIOD (TIME
WITH TIMEZONE)
Two 8-byte areas, each consisting of the following:
PERIOD
(TIMESTAMP WITH
TIMEZONE)
Two 12-byte areas, each consisting of the following:
• A 4-byte signed integer for the number of seconds (scaled with the
rightmost six decimal digits that contain fractional seconds).
• A 1-byte unsigned integer for the hours.
• A 1-byte unsigned integer for the minutes.
• A 1-byte unsigned integer for the hourly displacement of the timezone
normalized to 16. (Values less than 16 represent a negative
displacement, a value of 16 is zero displacement, and values greater
than 16 represent a positive displacement.)
• A 1-byte unsigned integer for the timezone's minutes of displacement.
The first area is the beginning time for the period; the second area is the
ending time.
• A 4-byte signed integer for the number of seconds (scaled with the
rightmost six decimal digits containing fractional seconds).
• A 2-byte signed integer for the year.
• A 1-byte unsigned integer for the month.
• A 1-byte unsigned integer containing the day.
• A 1-byte unsigned integer containing the hour.
• A 1-byte unsigned integer containing the minute.
• A 1-byte unsigned integer containing the timezone's hourly
displacement normalized to 16. (Values less than 16 represent a
negative displacement, a value of 16 is zero displacement, and values
greater than 16 represent a positive displacement.)
• A 1-byte unsigned integer containing the timezone's minutes of
displacement.
The first area is the beginning timestamp for the period; the second area is
the ending timestamp.
Response Repositioning
Within Teradata Database, a response to a request is kept within a spool file. To satisfy Fetch
requests by an application, CLIv2 interacts with the server to obtain all or part of the spooled
response. How long the response is spooled and how it is processed is controlled by the
application, as follows.
Specified Option
Result
Keep-response=N
The response is discarded once the last parcel is fetched, and parcels may
only be fetched once, in sequential order.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
37
Chapter 1: Introduction
Communicating with the Teradata Database
Specified Option
Result
Keep-response=Y
The response is kept until the EndRequest function is called, and parcels
may be fetched in sequential order, the Rewind function called, and
fetched again, the process repeated any number of times.
Keep-response=Y
and an SQL Select
statement includes the
FOR CURSOR phrase
The response is kept until the EndRequest function is called, and parcels
may be fetched in random order by row, sequentially within that row
using the CursorDBC and CursorHost parcels.
Keep-response=P
The response is kept until the EndRequest function is called, and parcels
may be fetched in random order by row, sequentially within that row
using the Positioning-action, Positioning-statement-number, and
Positioning-value DBCAREA settings.
Large Objects
Normal fields in a database table are limited to 64000 bytes. To allow for significantly larger
fields, such as audio or video data, CLIv2 supports large object (LOB) fields. If LOBs exceed
the maximum statement size, they are deferred using the AS DEFERRED phrase in the
USING row descriptor for the request string instead of being entirely included in the initial
request, such as (USING BLOB AS DEFERRED) or (USING BLOB AS DEFERRED BY
NAME). In this case, Teradata Database includes an ElicitData or ElicitName parcel in the
response to prompt CLIv2 to add the LOB.
Executing Programs in Teradata Database
It is possible to use SQL statements to execute user-defined programs in Teradata Database.
To do this, first define the programs using the SQL statements CREATE FUNCTION,
CREATE METHOD, or CREATE PROCEDURE. These SQL statements create an ElicitFile
parcel in the response that prompts CLIv2 to provide the program's source.
All-Or-Nothing Property
Teradata SQL INSERT statements can be used to add rows of data to a table. They are similar
to the write statements used to add records to a file.
Teradata SQL SELECT statements can be used to read rows of data from a table. They are
similar to the read statements used to read records from a file.
Occasionally an application requires that a set of Teradata SQL statements must all complete
or all be backed out.
Example
If money is being transferred from one account to another, the UPDATE statement that
subtracts the amount from the first account and the UPDATE statement that adds the
amount to the second account must both take place or neither take place.
38
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 1: Introduction
Communicating with the Teradata Database
Action
Result
If the first statement is completed
The money would vanish
If the second statement is completed
The money would be counted twice
Statements and Transactions
An application can enforce the all-or-nothing property, but it is much simpler for Teradata
Database to enforce it. The server will enforce the all-or-nothing property if the server has the
information that the statements constitute a transaction. Then, if one of the statements fails,
the server aborts the transaction and returns any database that was affected to the state it
would have been in if the transaction had not been submitted.
Teradata Transaction Semantics
When working with Teradata Database for UNIX release 2 (or later), two modes of
transactions are available:
•
Teradata
•
ANSI
If Teradata transaction semantics are used, three types of transactions differ in the way an
application identifies which statements share the all-or-none property. All three methods
back out all statements if any statement fails:
•
Explicit (user-generated)- Precedes the statements by a BEGIN TRANSACTION
statement and follows them with an END TRANSACTION statement.
•
Implicit - Submits the statements as a single request.
•
2PC (two-phase commit) - The action depends on CICS or IMS sync point services to
commit or roll back transactions. The use of the sync point services guarantees that all
updates performed within a logical unit of work will either all commit or all roll back. 2PC
requires Teradata Database for UNIX version 2 release 2 (or later), or Teradata DBS for
TOS version 1 release 5 (or later).
ANSI Transaction Semantics
ANSI transaction semantics are supported for Teradata Database for UNIX version 2 release 2
(or later). If ANSI transaction semantics are used, the first request begins a transaction
implicitly. All subsequent requests are part of the transaction until one of the following events
occurs:
•
SQL COMMIT statement
•
SQL ROLLBACK statement
•
LOGOFF statement
•
Failure response
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
39
Chapter 1: Introduction
Parallel Processing
A failure response rolls back only the statement causing the error unless that error threatens
the integrity of the database, in which case the entire transaction is rolled back.
Parallel Processing
Teradata Database can simultaneously process multiple requests from one or more
applications, automatically managing the processors to optimize an application-initiated
Teradata SQL request. No special programming is necessary to take advantage of the parallel
processing capabilities of Teradata Database.
Performance improvements can be achieved by programming an application to overlap the
processing of more than one Teradata SQL request at a time. The following sections discuss
three techniques that enable an application to overlap the processing of Teradata SQL
requests:
•
Multi-statement management
•
Multi-request management
•
Multi-session management
Multi-Statement Management
Two or more Teradata SQL statements, separated by semicolons, can be combined into a
single request. Teradata Database attempts to execute these statements in parallel. A single
response is returned, consisting of the results for each statement, which the application
processes until all are exhausted.
If a statement fails, an Error or Failure parcel is present. If a statement succeeds, the first
parcel is a Success, OK, or ResultSummary parcel; various parcels follow, ending with an
EndStatement parcel. The last parcel is an EndRequest parcel.
The first parcel always contains the statement number, which normally corresponds to the
ordinal position of the statement in the request; however, if a statement is an SQL CALL, and
the DBCAREA Result-sets-OK options allows the called procedure to return response parcels,
each such returned response will also increment the statement number, the ActivityType will
be 176. The presence of the ResultSet parcel indicates such additional statement numbers.
Multi-Request Management
Two or more responses can be processed simultaneously for a session. Once a request is
initiated, no other request can be initiated for that session until the previous one completes.
Once a request completes, the entire response need not be processed before initiating another
request. In this way, the application may process multiple responses in parallel.
The response being processed is identified by its request number, which is returned to the
application when a request is initiated. CLIv2 maintains the last parcel processed for each
response, so as appropriate, the application processes the next parcel until all are exhausted.
Up to sixteen responses can be processed simultaneously.
40
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 1: Introduction
Parallel Processing
Note that this facility is primarily a functional, not a performance, enhancement. It supports
techniques functionally similar to multi-session techniques, but on a single session.
Identifying a Request
An application identifies a request by its session number and request number. A request can
also be identified by an assigned token that is used with DBCHWAT and a request number.
DBCHCL maintains response buffer context such as current position and amount of data in
the buffer. Thus, the application can fetch the response data from any open request, initiate
other requests, or both, as desired. The request number is the input argument for subsequent
Fetch, Rewind, and EndRequest operations against the request.
Example
An application might initiate a request that contains a SELECT statement to return several
response rows. The application might fetch a response row, and initiate a request that
contains an UPDATE for that row. Another response row could then be fetched, and another
UPDATE sent. The results of the UPDATE could be checked when desired. The application
need only keep track of the request number.
No more than one Teradata SQL request can be active at one time per session.
Multi-Session Management
Two or more sessions can be connected simultaneously to the same (or different) servers.
Each session can process two or more requests simultaneously as previously discussed for
multi-request management.
Prior to considering a multi-session approach, an application programmer should determine
whether multi-statement requests on a single session satisfy throughput and response time
requirements. A multi-session application is much more complicated to implement, debug,
and maintain. In addition, depending on the application, multi-session techniques can result
in deadlocks and open timing windows that can leave the database in an inconsistent state.
Nevertheless, CLIv2 provides facilities to assist implementation of multi-session applications.
Because each session can have an active request, an application can either:
•
wait for completion of a particular request on a particular session, just as it would if only
one session existed,
•
wait for the completion of any of the active requests, or
•
wait for any combination of the previous two.
Waiting for completion of a particular request is the simplest from a programming
standpoint, but it may result in more time spent waiting than is necessary because other
requests might complete before the one being waited upon, and the application could be
processing those responses.
Waiting for the completion of any request is more complex programming, but results in the
minimum amount of time waiting because the application is never waiting when a response is
available for processing.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
41
Chapter 1: Introduction
Parallel Processing
How It Works
Each concurrent request can be identified to CLIv2 by using both the ID of the session with
which it is associated (that is, the value in Output Session Id from a call to DBCHCL for the
Connect function) and its own ID (that is, the value in Output Request Id from a call to
DBCHCL for these functions:
•
Connect
•
Initiate Request
•
RunStartUp
•
Initiate with Protocol-Function
•
Command
Using Tokens
An application can also supply a token for each request when it is initiated. That token is
returned by the DBCHWAT routine when a request response arrives. An application can have
requests pending on several sessions simultaneously.
One way for an application to wait is to call DBCHWAT. The wait ends when any request
completes. The advantage of this first method is that it maximizes throughput by reducing
session idle time. The application can handle the response and dispatch another request as
soon as the previous request completes.
Using Fetch
An alternate way for an application to wait is to call DBCHCL for the Fetch function, using
the session id of an active session. The wait ends when the specified request completes. The
problem with this method is that the application cannot know which of the active requests
will complete first. The application calls DBCHWAT, which determines which requests are
active and waits for any of them to complete. When a request completes, DBCHWAT returns
to the caller the session identifier and optional user-specified token associated with the
completed request. The application can then handle the response, dispatch another request,
and again call DBCHWAT.
42
Language
Location of Sample on the Release Tape
IBM Assembler
EX2
COBOL
CLI2MCB
PL/I
CLI2MPB
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 1: Introduction
Multi-application Management
Multi-application Management
In general, all use of CLIv2 facilities by an operating system dispatchable unit, such as an z/OS
task, is related. That is, any CLIv2 resource, such as sessions or requests, can be used from any
caller in that dispatchable unit.
Conversely, all callers of CLIv2 within a dispatchable unit must coordinate with each other.
However, there are instances in which such knowledge is not possible, such as use of CLIv2 in
an exit provided by an application that itself uses CLIv2. To prevent a session established by
the exit from interfering with the application (for example, by the application calling
DBCHWAT and being returned completion of a request issued by the exit), crude support is
provided. The exit may specify the Wait-exclusion DBCAREA option when it Connects a
session. Such sessions will be excluded from any DBCHWAT processing by the application.
If needed, the exit would then use DBCHWL to wait for only its session (Wait-exclusion has
no impact on DBCHWL processing). Since there is no explicit Connect for the Command
function, it also honors Wait-exclusion. No other CLIv2 resources support Wait-exclusion: in
particular, 1) user events and master events will affect all types of wait processing, so cannot
be used either by the application or the exit; 2) a DBCHCLN call by either the application or
exit will free all CLIv2 resources for that dispatchable unit.
Coordination with Other Events
An application can have events other than requests for a Teradata session. Depending upon
the particular function, calls to DBCHCL may require communication with Teradata
Database. If so, control is not returned to the application until Teradata Database responds.
But until DBCHCL returns control, the application will be unaware of other events that might
have been completed. For example, an application might need to establish a timer and abort a
Teradata request that does not complete before the timer interval expires. The three responses
follow:
•
Allow DBCHCL to suspend
Suspending DBCHCL is the default and simplest handling. DBCHCL is called normally
and control is not returned to the application until the request is completed. The
application cannot check for completion of other events until control is returned. The
DBCAREA Wait-for-Response option is set or defaulted to 'Y'.
•
Retry if DBCHCL would suspend
DBCHCL is called but never waits if a response from Teradata Database is required.
Instead, control is returned to the application with return code 150 and the application
must call DBCHCL later to retry the operation. The DBCAREA Wait-for-Response option
is set to 'N'.
•
Suspend only in the application
DBCHCL is called but never waits if a response from the Teradata Database is required.
Instead, control is returned to the application with return code 150, the application
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
43
Chapter 1: Introduction
Common Routines Supporting CLIv2
chooses when to suspend, then the application must call DBCHCL later to retry the
operation. The DBCAREA Wait-for-Response option is set to 'N' and the CLIv2
DBCHWAT or DBCHWL service is used. Both DBCHWAT and DBCHWL identify event
completions, they differ only in that DBCHWAT responds to any event while DBCHWL
responds only to specified events. The following techniques can be used:
•
Call DBCHWAT or DBCHWL when suspension is allowed. If suspension can be
tolerated at times, then DBCHWAT or DBCHWL can be called to suspend if necessary
until a Teradata request completes. When DBCHWAT or DBCHWL returns control,
the completed request is indicated and DBCHCL can be retried.
•
Include another event when calling DBCHWAT or DBCHWLD. These calls can be
informed of another event using the DBCHUE service and DBCHWAT, or DBCHWL
can be called to suspend if necessary until either a Teradata event or the other event
completes. A return code 160 indicates that the other event completed; otherwise, the
completed event is indicated and DBCHCL can be retried
•
Include Teradata events in another event. The completion of a Teradata request can be
included into another event by using the DBCHME service. The application then
suspend on that event using an operating system service. When completion is
indicated, the application must determine whether the other event completed. If not,
then a Teradata request has completed and DBCHWAT or DBCHWL is called to
identify the request so that DBCHCL can be retried. Since it is known that some
Teradata request has completed, it is known that DBCHWAT or DBCHWL will not
suspend.
Common Routines Supporting CLIv2
The following common routines are used in most basic applications.
Routine
Description
DBCHINI
Initializes the DBCAREA, which is shared by an application and most CLIv2
routines. DBCHINI also does the internal initialization of CLIv2.
DBCHCL
•
•
•
•
•
•
•
DBCHCLN
Cleans up after an application is finished using Teradata Database.
Connects a session on Teradata Database (the database itself).
Checks that the logon was successful.
Ends the Connect request.
Sends Teradata SQL statements (for example, selects rows from a table).
Process the response (for example, obtains rows from table).
Ends the request.
Disconnects the session.
When DBCHCLN is called and the return code is zero, data structures allocated
internally during the calls to CLIv2 routines have been deallocated.
44
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 1: Introduction
Common Routines Supporting CLIv2
For more information about CLIv2 routines, see Chapter 6: “Common Routines.”
For information about routines that provide information about CLIv2, TDP, or Teradata
Database, see Chapter 8: “CLIv2 Query Routine.”
For information about CLIv2 routines that perform additional services, see Chapter 7: “Other
CLIv2 Routines.”
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
45
Chapter 1: Introduction
Common Routines Supporting CLIv2
46
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
CHAPTER 2
Session Operations
This chapter describes how an application and Teradata Database interact through CLIv2:
•
Preparing to Use CLIv2
•
Setting DBCAREA Options
•
Return Codes
•
Messages for Return Codes
•
Explicitly Establishing a Session
•
Executing a RunStartUp Request
•
Submitting a Teradata SQL Request
•
Fetching the Response for a Request
•
Continuing a Teradata SQL Request
•
Rewinding to the Beginning of a Response
•
Ending a Request
•
Aborting a Request
•
Terminating a Session
•
Examples
•
Implicitly Establishing a Session
Note: Implied waiting (Wait For Response = Y) is applicable to the discussion that follows.
Preparing to Use CLIv2
An application must first establish a storage area referred to as the DBCAREA, which is the
communication structure between an application and CLIv2.
Allocating DBCAREA
Depending on the client language in which the program is coded (for example, 370
Assembler, C, COBOL, PL/I), the DBCAREA can be allocated as follows:
•
Using program storage by coding or copying the DBCAREA structure directly into the
program
•
Dynamically allocating storage and referencing the area obtained within the program
•
Passing the structure from a higher-level routine
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
47
Chapter 2: Session Operations
Setting DBCAREA Options
Initializing DBCAREA
Once it is allocated, the DBCAREA must be initialized before a call to CLIv2 requesting CLIv2
services can be attempted. The application initializes the DBCAREA by putting the total
length of the DBCAREA into the DBCAREA Total Length field of the structure and calling
DBCHINI (see Chapter 6: “Common Routines” for a description of the call to DBCHINI).
Return Code.
Result
0
DBCHINI completed successfully and DBCAREA can be used to
communicate with CLIv2.
anything else
a major system error occurred and the application cannot communicate
with CLIv2.
How Many DBCAREAs to Use
The application can use one DBCAREA for all the requests or a separate DBCAREA for each
request, or use any combination in between. This choice is available for either multi-sessions
or multi-requests.
Application Status
Result
facing space
limitations
Reuse the one DBCAREA, which involves copying the Output Request Ids,
saving them, and replacing them when doing a Fetch, Rewind, or Cancel
against that same Teradata SQL request.
If other fields, such as the processing options or buffer addresses or sizes,
change from one request to another, they too must be saved and replaced.
Since much less information than the whole DBCAREA is saved, the
application can show a significant saving of space at the small cost of
unloading and reloading those fields between calls.
able to spare the space
for multiple
DBCAREAs
Allocate one DBCAREA per concurrent request.
The application can show some saving of time at the cost of the space for
the extra DBCAREAs.
Applications may append fields to the DBCAREA for their own use. While allocating storage
for, and use of, such fields are the responsibility of the application, associating them with a
DBCAREA may be useful to the application, especially if multiple DBCAREAs are used.
Setting DBCAREA Options
The DBCAREA contains option values used by the CLIv2 routines. These options are initially
set by DBCHINI based on the HSHSPB defaults provided to the program. The application
may alter any of these options as necessary for the particular processing required. Note that
not all options (and in some cases, none) are used by all calls to CLIv2.
48
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 2: Session Operations
Setting DBCAREA Options
A change in an option is indicated to CLIv2 by setting the Change Options field to ‘Y‘. All
options may then be copied by CLIv2 for use. CLIv2 will verify the settings for the options as
necessary.
Change Options
The Connect function will always validate and save the DBCAREA options, regardless of the
Change Options. The options remain in effect until another Connect function is requested or
the values are changed when an Initiate Request, Initiate With Protocol-function, or
RunStartUp function call is made (Change Options = Y).
Note: Implicit logon processing will also always validate and save the DBCAREA options. For
more information, see “Implicitly Establishing a Session” on page 66.
Compatibility Options
For CLIv2 to provide a stable environment for existing applications, any enhancements to
Teradata Database that might adversely affect applications must be specified as a DBCAREA
option to allow their use. While DBCAREA specification is necessary for compatibility, this
requires applications needing such enhancements to specify the new options. Since new
applications should normally allow the enhancements, they should specify these DBCAREA
options. Specifically, new applications should consider specifying the following options when
establishing a session:
•
APH-response-OK=Y (DBRIAPH) should always be specified.
•
Column-info=E (DBRICINE) should always be specified.
•
Connect-type=C (DBOCTYPE) should always be specified.
•
Maximum-parcel=H (DBCIMP) should always be specified. For PL/I applications, the
Variable-length-request=Y and Variable-length-fetch=Y options cannot then be used.
•
Request-parcel-format=A (DBRIRPF) should always be specified.
•
Response-mode=M (DBORMOD) instead of 'R', 'I', or 'X' should be specified ('F'
provides other functionality) unless the application must support old versions of the
Teradata Database, which would reject its use. The CLIv2 Query routine QEPILOB (or
QEPIASL) can be used to ascertain if the server supports this enhancement.
•
Statement-status=E (DBCNISS) should be specified unless the application must support
old versions of the Teradata Database, which would reject its use. The CLIv2 Query
routine QEPIESS (or QEPIASL) can be used to ascertain if the server supports this
enhancement.
For applications that support multiple releases of CLIv2, a downlevel CLIv2 might not
support an enlarged DBCAREA. To ensure that a DBCAREA of the size provided to the
DBCHIN service was honored, the DBCAREA Level field should be verified.
Miscellaneous Functions
The Disconnect, Fetch, Rewind, Abort, and End Request functions will reference the options
set by the last Connect, Initiate Request, Initiate With Protocol-function, or RunStartUp
function executed.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
49
Chapter 2: Session Operations
Setting DBCAREA Options
Character Sets
A character set specifies which characters are available (for example, whether the Japanese
characters are available) and how those characters are represented (for example, EBCDIC or
ASCII). Character data in logon strings, request data, response data, and error messages are
affected by the choice of character set. An application can specify character sets; if the
character set is not specified, the default from the HSHSPB or Teradata Database is used.
Once a character set is used for a request, it will continue to be used for subsequent requests in
that session until another character set is specified.
Teradata Database processes strings from left to right, even for character sets associated with
right-to-left or bidirectional languages, such as Hebrew or Arabic.
Allowing a default character set to be used will often cause the following problems in
applications:
•
Because the logon string and request data use the character set, if the default changes, so
must the logon string or request data.
•
Because the response data and error messages use the character set, an application that
inspects this information must consider the character set. Such considerations might be
minor (EBCDIC compared to EBCDIC277_0E) but they could be major (EBCDIC
compared to UTF16). While the used character set might be obtained after a session is
established (using the DBCHQE service's Session-character-set query), doing so is too late
to ensure the logon string is in the proper character set. The application may obtain the
default before establishing a connection using the DBCHQE service's
Default-character-set query. Once the default character set is known, the application could
either reject its use or perform any character conversions necessary for its use.
If the TDPid is specified as a prefix to the logon string, then even if a Teradata Database
default character set is acceptable to an application, it should be obtained and explicitly
specified when the session is established. This is necessary because the database default
character set cannot be known by CLIv2 until the TDPid is known, but to obtain the TDPid
from the logon string requires the character set be known. If no character set is specified or
defaulted using the HSHSPB, an attempt will be made to obtain the TDPid from the logon
string using EBCDIC, which might not have the same characteristics as the database default
character set. So the TDPid might not be found, the default TDPid from the HSHSPB used,
and the wrong database might be assumed. Even if the default TDPid is the expected TDPid,
the database will fail the attempt because CLIv2 cannot remove the TDPid prefix from the
logon string.
Character sets can be supplied by the server or defined by the customer. The names of all
character sets supplied the server are known to CLIv2. Character sets defined by the customer
must also be defined to CLIv2. For more information, see Chapter 13: “User-Defined
Character Sets.”
50
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 2: Session Operations
Setting DBCAREA Options
Variable Length Request Option
The setting of the Variable Length Request option affects the setting of the following:
•
Logon Pointer
•
Logon Length
•
Mechanism-data-ptr
•
Mechanism-data-length
•
Run Pointer
•
Run Length
•
Request Pointer
•
Request Length
•
Session-desc-pointer
•
Session-desc-length
•
Using Data Pointer
•
Using Data Length
•
Workload-pointer
•
Workload-length
Setting
Result
N
The xxxx_pointer contains the starting address of the actual logon string, run string,
Teradata SQL request, or using data.
The xxxx_length is set to the length of the corresponding data.
Y
The xxxx_pointer contains the address of a two-byte length, which must immediately
precede the actual text or data.
The length provided measures only the length of the text or data and does not include
the two bytes of its own length. The xxxx_length field is ignored.
If the Maximum Parcel option is set to H, then the two-byte length is considered to be an
unsigned value. Because PL/I does not support unsigned integers, you cannot use the Variable
Length Request option to allow the PL/I VARYING attribute for the Request Pointer or the
Using Data Pointer for requests greater than 32767.
Since the maximum value that can be contained in the two-byte length is 65535, larger lengths
cannot use Variable-length-requests.
Maximum Parcel Option
Newer databases are being defined with fields or rows greater than 32767 bytes; as a result,
applications will need to support larger parcel sizes. Therefore, we recommend that the
Maximum Parcel option be set to H for all future applications, thus indicating that the
application can support parcel sizes greater than 32767 bytes.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
51
Chapter 2: Session Operations
Setting DBCAREA Options
The logic of the application is not affected, only certain uses of signed two-byte unsigned
integers. Because values greater than 32767 exceed the capacity of such integers on IBM
mainframes, applications must insure that any value that is based on parcel length must use
longer integers or unsigned integers. If this is not done, CLIv2 could return a length that could
be considered to be a negative value, with unpredictable results.
Since the maximum value that can be contained in the two-byte length is 65535, requests with
larger lengths cannot use Variable-length-request. Responses with Variable-length-fetch that
require larger lengths will be rejected.
Because PL/I does not support unsigned integers, you cannot use the Variable Length Request
option to allow the PL/I VARYING attribute for the Request Pointer or the Using Data
Pointer for requests greater than 32767. This same consideration also applies to use of the
Variable Length Fetch option and the Fetch Data pointer.
When using Move Mode, you may need to increase the Fetch Maximum Data Length to
accommodate the larger parcels.
Performance Measurement
The Return-time and Timing-precision options can be used to determine the amount of time
needed to process a request and its response from the perspective of the client. If Return-time
requests such timing, up to five timestamps are returned in Time1 through Time5. The
determination of which timestamps are returned and to which points in the processing they
apply are platform-dependent. The returned Time1-status through Time5-status values
indicate which Time values are valid. Each Time is four bytes long and contains an unsigned
binary timestamp.
On channel-connected systems:
•
Time1 is set when TDP accepts a request from CLIv2
•
Time2 is set when a request is passed to the Teradata Database
•
Time3 is set when the response is received from the server
•
Time4 is set when the response leaves TDP
•
Time5 is set when the response is placed into the CLIv2 response buffer.
The difference between two timestamps represents the elapsed time between the two points in
processing. The precision for the timestamps is indicated by Timing-precision. On
channel-connected systems, timestamps are formed by manipulating the IBM standard
Time-of-Day (TOD) clock as indicated by the following Assembler code:
STCK area
LM R0,R1,area
SR R15,R15
IC R15,DBCITSP
SRDL R0,12(R15)
ST R1,DBCTIMEn
52
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 2: Session Operations
Return Codes
Time1-status through Time5-status each contain a single EBCDIC character that indicates of
the status of the corresponding Time. The status values are:
•
'V' if the timestamp is valid
•
'O' if the timestamp overflowed four-bytes
•
A ‘space’ or ‘binary zero’ if the timestamp is not valid
Return Codes
Return codes are generated by client software; error codes and failure codes are generated by
Teradata Database.
Client Return Codes
Client software uses return codes to provide information about operations on the client. The
value that is returned as a return code from a CLIv2 routine is generated by the CLIv2 routine
itself or is passed back from some other client-resident module used by the CLIv2 routine. A
return code of zero is normal, and a return code of nonzero represents an exception.
A return code can appear in three areas:
•
In the Assembler register 15 (the most direct and reliable location to find a return code)
•
In a parameter in the call itself (if CLIv2 cannot access this parameter, the return code will
not appear here)
•
In the Return Code field of the DBCAREA (if CLIv2 cannot access the DBCAREA or this
field, the return code will not appear here)
Teradata Error and Failure Codes
Teradata Database uses error codes and failure codes to provide information about
operations. The absence of an Error parcel represents an error code of zero. The absence of a
Failure parcel represents a failure code of zero. An Error parcel or Failure parcel contains a
nonzero code and represents an exception. For more information, see Chapter 10: “Error and
Failure Codes” and Chapter 11: “Crash and Recovery.”
Sometimes, both client and Teradata Database sources must be checked. For instance, on a
call to DBCHCL for the Fetch function, a return code of zero means that the client software
has set a pointer to information in the response buffer. Not until the information is examined
does the application know what the Teradata Database “has to say.” For example, the return
code may be zero and the parcel successfully pointed to may be a Failure parcel.
A code value represents the answer to a particular repeat of a particular operation. For
instance, suppose CLIv2 is obtaining a response buffer and Teradata Database is unable to
provide more of the response because the system has restarted. The application would then
discover a Failure parcel in the response buffer after a number of normal parcels.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
53
Chapter 2: Session Operations
Return Codes
Timing
Return codes are generated at several steps in the process of submitting a request and
consuming the response. Each return code represents the outcome of a given step in the
process. For example, a return code of zero from DBCHCL for the Initiate Request function
means that the client has sent the request to Teradata Database; if DBCHWAT is used, a
return code of zero means that a portion of the response to some request has been received
from Teradata Database, and a return code of zero from DBCHCL for the Fetch function
means that the software has set a pointer to the next information in the response buffer. No
one return code stands as a summary of all stages in the processing.
Similarly, a return code does not represent all repeats of a process. For example, a repeated
call to DBCHCL for the Fetch function may generate many return codes of zero and later
generate a nonzero return code if an application continues to ask for the next parcel in the
response after consuming the final parcel.
Types
Some values represent informational messages. For example, if an application calls DBCHCL
for the Fetch function and the response buffer is in the process of being obtained, the
application receives a return code that indicates the data is not yet available. The application
merely fetches again either immediately or after calling DBCHWAT, depending on the
technique used.
Some values represent problems from which the application can be programmed to recover.
For example, one return code indicates that the move area provided for a move-mode fetch
was not large enough for the next available parcel; the application must therefore supply a
larger area of at least the size specified by Fetch Returned Data Length in the DBCAREA and
fetch again. For more information, see Chapter 10: “Error and Failure Codes” and
Chapter 11: “Crash and Recovery.”
Other values represent problems that applications cannot recover from on their own. For
example, the return code 157 indicates the HSHSPB is missing. In this case, a programmer
must contact their system administrator to check on these conditions.
Most values represent coding problems. For example, one return code indicates that an illegal
combination of processing options has been set. In this case, a programmer must change the
program to use a legal combination.
Return codes for various clients are not necessarily the same. For example, the return code
indicating an invalid TDpid (one with valid characters but no such TDpid) is 36 on z/OS.
For more information about return codes, see the chapter on (IBM) Mainframe Client
Messages in Messages.
Messages for Return Codes
When a CLIv2 routine that uses the DBCAREA returns a non-zero return code, an associated
error message is also returned. The message will be contained either in Message Text within
the DBCAREA or in the area addressed by Message Area Pointer. A message is never returned
in both places.
54
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 2: Session Operations
Explicitly Establishing a Session
•
If Message Area Pointer is specified, it is used; otherwise, Message Text is used.
•
Message Text is a fixed size field in the DBCAREA, so the maximum length of a message is
the size of that area, 76 bytes. Message Text Length contains the actual number of bytes in
the message.
•
Message Area Pointer addresses an area supplied by the application whose length is
specified by Message Area Length.
•
Message Length contains the actual number of bytes in the message. The maximum value
of this field is 65535.
Messages are normally built using the character set specified for the session when the request
is initiated; however, if an error is detected before this character set is known, the default
CLIv2 character set is used. The character set used to construct the message is indicated by
Message Charset Used.
If an error occurs while building a message, the Message Return Code field contains a CLIv2
return code. When this code is not zero, the text of the message may or may not be usable,
depending on the nature of the error.
Each message begins with the three characters “CLI” followed by a four-digit message
number. If the actual message text cannot be used, one of the following parenthesized phrases
is used:
•
'(UNDEFINED MESSAGE NUMBER)' if an invalid message number was requested.
•
'(REQUIRED MESSAGE TABLE IS NOT AVAILABLE)' if messages were not available
in the specified language.
The message language for each session is specified by the Language Id and Country Id options.
Caution:
Because the message language can differ for every request, the appropriate message definitions
are loaded into virtual storage when messages must be built and deleted from virtual storage
afterwards. These actions involve a certain performance penalty that is normally negligible
since CLIv2 return codes are unusual events. However, the design of applications should
consider the potential penalty in numerous invocations of CLIv2 routines that return error
messages when errors are expected, such as continuous invocations until a transient error
condition clears (a communication loss, for example).
Explicitly Establishing a Session
Before Teradata Database can process requests, one or more sessions must be established on a
server. If a large number of sessions need to be simultaneously connected by an application,
the DBCISMAX setting should reflect this when the first session is connected. Doing so will
improve performance by allowing CLIv2 to optimize its internal processing. To establish a
session, an application must perform the following
1
Modify the DBCAREA.
a
Set the Function to CONNECT.
b
Optionally, set the following:
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
55
Chapter 2: Session Operations
Explicitly Establishing a Session
•
Mechanism-name
•
As required by that name, sets the following:
- Mechanism-data-len
- Mechanism-data-ptr
- Mechanism-data-encoding
- Delegate-user-identity
c
If required, set the Logon Pointer.
d
If required, set the Logon Length.
e
Optionally set the following:
Request Buffer Length
•
Request-parcel-format
•
Response Buffer Length
•
Anticipated Number of Concurrent Sessions
•
Request-token
•
Input TDPpath
•
Run Pointer
•
Run Length
•
Message Area Pointer
•
Message Area Length
•
Session-desc-pointer
•
Session-desc-length
•
]Workload-pointer
•
Workload-length
•
Any option values required
2
Call DBCHCL to perform the Connect function.
3
Check the return code from DBCHCL.
•
•
56
•
If the return code is anything but 0:
•
Process the return code and DBCAREA message.
•
Call DBCHCL to perform the Disconnect function (see “Terminating a Session”
on page 64).
If the return code is 0, call DBCHCL to perform a Fetch function (see “Fetching the
Response for a Request” on page 60) to get the final status of the connect request:
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 2: Session Operations
Executing a RunStartUp Request
Connect
Type
Return Code
Result
R
33
A session is established and the Teradata SQL processing can
continue.
0
Process the failure/error parcels.
anything else
An abnormal situation occurred. Use the Fetch function
(“Fetching the Response for a Request” on page 60) to
process.
0
Process parcels from Teradata Database.
C
If a success parcel returns, then a session is established and
Teradata SQL processing can continue.
If anything else returns, process the failure/error parcel.
anything else
4
An abnormal situation occurred. Use the Fetch function
(“Fetching the Response for a Request” on page 60) to
process.
Call DBCHCL to perform the End Request function (see “Ending a Request” on page 63).
If the Connect attempt is not successful at any point, the program can retry the Connect after
calling DBCHCL for the End Request function.
If the application requires multiple active requests, multiple sessions can be established by
following the aforementioned steps for each session desired.
In addition, the Session Id field in the DBCAREA should be saved to request Teradata SQL
processing for that session at a later time.
Password Expiration
When an application sends a connect request with an expired password, a conditional session
is established with Teradata Database. The only Teradata SQL action that the application can
take is to submit a MODIFY USER statement that assigns a new password to the user.
If a logon is attempted for a user with an expired password when the user is already logged on
in another session, the logon attempt fails and the session is not established.
Executing a RunStartUp Request
The user’s startup string is not automatically executed when a connection is established
through CLIv2. Instead, the startup string is executed by issuing a RunStartUp request. The
RunStartUp request can be issued at any time during the execution of the program.
The following information is presented as though the connection to Teradata Database is
already established.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
57
Chapter 2: Session Operations
Executing a RunStartUp Request
To run a startup string once the session is established, an application must perform the
following steps:
1
2
3
Modify the DBCAREA.
a
Set the Function to RunStartUp.
b
Set the Input CLIv2 Session Id to the Output CLIv2 Session Id obtained when the
session was established.
c
Optionally set the following:
•
Request Buffer Length
•
Request-parcel-format
•
Response Buffer Length
•
Anticipated Number of Concurrent Sessions
•
Request-token
•
Using Data Pointer
•
Using Data Length
•
Using-data-count
•
Using-data-length-vector
•
Using-data-pointer-vector
•
Data-encryption
•
Message Area Pointer
•
Message Area Length
•
Any option values required (remember to set Change Options = Y if any option
values are changed)
Call DBCHCL to perform the RunStartUp function, then checks the return code from
DBCHCL:
Return Code.
Result
0
Call DBCHCL to perform a Fetch function (see “Fetching the Response
for a Request” on page 60) until the complete response has been
processed.
anything else
Process the return code and DBCAREA message.
Call DBCHCL to perform the End Request function (see “Ending a Request” on page 63).
The runstartup string can contain either a macro requiring input parameters or a request with
a USING row descriptor. In this situation, the application must pass the address and length of
the data area to CLIv2. The Using Data Pointer and Using Data Length fields of the
DBCAREA are provided for this purpose.
58
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 2: Session Operations
Submitting a Teradata SQL Request
Submitting a Teradata SQL Request
A Teradata SQL request must be submitted to Teradata Database for processing by using the
Initiate Request function. To initiate a request once a session is established, an application
must perform the following steps:
1
Modify the DBCAREA.
a
Set the Function to Initiate Request.
b
Set the Input CLIv2 Session Id to the Output CLIv2 Session Id obtained when the
session was established.
c
Set the Request Pointer.
d
Set the Request Length.
e
Optionally set the following:
•
Positioning-action
•
Positioning-statement-number
•
Positioning-value
•
Request Buffer Length
•
Request-parcel-format
•
Response Buffer Length
•
Anticipated Number of Concurrent Sessions
•
Request-token
•
Using Data Pointer
•
Using Data Length
•
Using-data-count
•
Using-data-length-vector
•
Using-data-pointer-vector
•
Data-encryption
•
Message Area Pointer
•
Message Area Length
•
Any option values required (remember to set Change Options = Y if any option
values are changed)
2
Call DBCHCL to perform the Initiate Request function.
3
Check the return code from DBCHCL:
Return Code
Results
0
Call DBCHCL to perform a Fetch function (see “Fetching the Response for a
Request” on page 60) until the complete response has been processed.
anything else
Process the return code and DBCAREA message.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
59
Chapter 2: Session Operations
Fetching the Response for a Request
4
Call DBCHCL to perform the End Request function. See “Ending a Request” on page 63.
The Teradata SQL request might require input data. In this situation, an application must
pass the address and length of the data area to CLI. The Using Data Pointer and Using Data
Length fields of the DBCAREA are provided for this purpose.
Fetching the Response for a Request
The final status and any response information for a request are obtained by the Fetch
function. To fetch the final status and any response once the session is established, an
application must perform the following steps:
1
Modify the DBCAREA.
a
Set the Function to Fetch.
b
Set the Input CLIv2 Session Id used to initiate the request.
c
Set the Input CLIv2 Request Id to the Output CLIv2 Request Id obtained when the
request was initiated.
d
Optionally set the following:
•
Positioning-action
•
Positioning-statement-number
•
Positioning-value
•
Fetch Maximum Data Length
•
Fetch Data Pointer
•
Message Area Pointer
•
Message Area Length
2
Call DBCHCL to perform the Fetch function.
3
Check the return code from DBCHCL.
Return Code
Results
0
Process the parcels.
This step depends on the setting of the options when the request was initiated
and any changes from an Initiate Request, Initiate With Protocol-function, or
RunStartUp function.
The first fetch returns the outcome of the request (ok, success, failure, or
error).
The effect of the option switches on fetch processing may be found in the
descriptions of the options in Chapter 3: “DBCAREA,” and under the heading
“Fetch Function” in Chapter 6: “Common Routines.”
anything else
60
Process the return code and DBCAREA message.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 2: Session Operations
Continuing a Teradata SQL Request
The first fetch returns the following:
•
If any statement in the request causes an implicit rollback to occur, a failure parcel for the
entire request is returned.
•
If no implicit rollback happened, the ok, success, or error parcel information returned
pertains to the first (or only) statement of the submitted request.
Continuing a Teradata SQL Request
When an ElicitData, ElicitFile, or ElicitName response parcel is fetched, Teradata Database
requires additional information to complete the request. To provide that information, an
application must perform the following steps:
1
Modify the DBCAREA.
a
Set the Function to 15 (ContinueRequest).
b
Set the Input CLIv2 Session Id to the Output CLIv2 Request Id returned when the
session was established.
c
Set the Input CLIv2 Request Id to the Output CLIv2 Request Id returned when the
request was initiated.
d
Set the Request Pointer field.
e
Set the Request Length field.
f
Optionally set the following fields:
g
•
Fetch Buffer Length field
•
Message Area Pointer field
•
Message Area Length field
Optionally set the Change Options option to 'Y', and set the following:
•
C2S Conversion option
•
Locate Mode option
•
Maximum Parcel option
2
Call DBCHCL to perform the ContinueRequest function.
3
Check the return code from DBCHCL:
Return Code.
Result
0
Call DBCHCL to perform a Fetch function to get the final status of the
rewind and the first part of the response. For more information, see “Fetching
the Response for a Request” on page 60.
anything else
Process the return code and DBCAREA message.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
61
Chapter 2: Session Operations
Rewinding to the Beginning of a Response
4
Call DBCHCL to perform the End Request function. For more information, see “Ending a
Request” on page 63.
Rewinding to the Beginning of a Response
The response for a request may be reprocessed from the beginning if an application requires.
The ability to rewind to the start of the response sequence is dependent on the setting of the
Keep Response option when the request is initiated.
Keep Response
Result
N
The response is discarded as it is processed and rewind is unavailable.
Y
The application has the option of rewinding to the beginning of the
response and reprocessing.
To rewind to the start of the response once the session has been established, an application
must performs the following steps:
1
62
Modify the DBCAREA.
a
Set the Function to Rewind.
b
Set the Input CLIv2 Session Id used to initiate the request.
c
Set the Input CLIv2 Request Id to the Output CLIv2 Request Id obtained when the
request was initiated.
d
Optionally set the following:
•
Message Area Pointer
•
Message Area Length
2
Call DBCHCL to perform the Rewind function.
3
Check the return code from DBCHCL:
Return Code
Results.
0
Call DBCHCL to perform a Fetch function (see “Fetching the Response for a
Request” on page 60) to get the final status of the rewind and the first part of
the response.
anything else
Process the return code and DBCAREA message.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 2: Session Operations
Ending a Request
Ending a Request
Storage is acquired both by Teradata Database and CLIv2; therefore, an application needs to
release resources by letting CLIv2 know the application has finished processing the request
(either successfully or because an error has occurred).
The End Request function releases the resources associated with a particular request. To end a
request, an application must performs the following steps:
1
Modify the DBCAREA.
•
Set the Function to End Request.
•
Set the Input CLIv2 Session Id used to initiate the request.
•
Set the Input CLIv2 Request Id to the Output CLIv2 Request Id obtained when the
request was initiated.
•
Optionally set the following:
•
Message Area Pointer
•
Message Area Length
2
Call DBCHCL to perform the End Request function.
3
Check the return code from DBCHCL:
Return Code
Results.
0
The request is successfully ended.
anything else
Process the return code and DBCAREA message and resubmit the End
Request.
Aborting a Request
If an application must terminated a request prior to its completion, an asynchronous abort
can be attempted. To abort a request, an application must perform the following steps:
1
2
Modify the DBCAREA.
a
Set the Function to Abort.
b
Set the Input CLIv2 Session Id used to initiate the request.
c
Set the Input CLIv2 Request Id to the Output CLIv2 Request Id obtained when the
request was initiated.
d
Optionally set the following:
•
Message Area Pointer
•
Message Area Length
Check the return code from DBCHCL.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
63
Chapter 2: Session Operations
Terminating a Session
Return Code
Results
0
Call DBCHCL to perform a Fetch function (see “Fetching the Response for a
Request” on page 60) to await the final status of the original request.
A failure indication should be returned with a code of “user abort” (3110) if
the abort is successful.
anything else
Process the return code and DBCAREA message.
Terminating a Session
After all processing is complete for a session, an application must terminate the session by
performing the following steps:
1
Modify the DBCAREA.
2
a
Set the Function to Disconnect.
b
Set the Input CLIv2 Session Id to the Output CLIv2 Session Id obtained when the
session was established.
c
Optionally set the following:
•
Message Area Pointer
•
Message Area Length
Call DBCHCL to perform the Disconnect function.
Examples
Two examples follow; the first is for a single session, and the second is for multiple sessions.
Single Session
Each horizontal item below represents a call to DBCHCL, with function code set as in the left
column.
Function
Description
Connect
Application must have set address and length of logon string.
All other arguments (buffer sizes, run string, and various other arguments)
are optional and will default if they are left unset.
64
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 2: Session Operations
Examples
Function
Description
Fetch
Fetch response data, always one of the following parcels:
Success
Error
Failure
Initiate Request
Send Teradata SQL request to the Teradata Database.
Application must set address and length of the Teradata SQL request and
optional using data.
Fetch
Fetch response data. DBCHCL will return address and length of first parcel
(or buffer, if in buffer mode).
The DBCHCL does the following, depending on whether dual buffering is
specified and the status of the current buffer:
• If dual buffering is specified and the current buffer is not the last response
buffer, DBCHCL immediately dispatches a continue request to retrieve the
next buffer full of data. Thus, the continue request process is overlapped
with consumption of the first buffer.
• If dual buffering is not specified and the current buffer is in any status,
DBCHCL transparently dispatches the continue request when the current
buffer is exhausted.
End Request
Clean up request-related context.
Disconnect
Log off from the Teradata Database and free the session-related control
blocks
Multiple Sessions
Each horizontal item that follows represents a call to DBCHCL with the function code set as
in the left column.
Function
Description
Connect/Fetch
Same as for a single session
Initiate Request
Send Teradata SQL request to the Teradata Database.
(Session 1)
Application must set address and length of Teradata SQL request and
optional using data. Application must save the Output CLIv2 Request Id.
Initiate Request
Same as for session 1, probably with different data
(Session 2)
Fetch
Same as for a single session
(Session 1 and 2)
set Session Id and DBCAREA to id of session to be used
set Request Id to id of request to be accessed
End Request
Clean up request-related context (Stream 1 and 2)
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
65
Chapter 2: Session Operations
Implicitly Establishing a Session
Function
Description
Disconnect
Log off from the Teradata Database and free the session-related control
blocks
(for each session)
Implicitly Establishing a Session
CLIv2 can attempt to establish a session implicitly for any of the following functions:
•
Connect
•
RunStartUp
•
Initiate Request
•
Initiate With Protocol-function
If no logon string is supplied, or if only a partial logon string is given, the Connect function
attempt an implicit logon. RunStartUp, Initiate Request, and Initiate With Protocol-function
attempts an implicit connection if no active sessions exist at the time they are invoked.
The DBCAREA parameters that apply for the Connect function can be supplied to the
RunStartUp, Initiate Request, and Initiate With Protocol-function if the implicit logon is to
be attempted. The implicit logon is issued for the TDP specified in the DBCAREA or
defaulted from the HSHSPB.
If the user exit is not active for the given TDP, an application will receive an error indicating
an unsuccessful logon attempt. Likewise, if the information the logon exit supplies for the
logon attempt is incorrect, an appropriate error will be returned to the application.
66
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
CHAPTER 3
DBCAREA
The DBCAREA is a data structure shared between the application and CLIv2. It defines the
interface between CLIv2 and an application.
•
An application sets values in the DBCAREA to transfer information to CLIv2.
•
CLIv2 sets values in the DBCAREA to transfer information back to an application.
How Applications Use DBCAREA
The DBCAREA is allocated by an application, then passed to DBCHINI where it is cleared and
some fields are initialized to their default values. After initialization, an application sets
appropriate input values in the DBCAREA before each call to DBCHCL. When an application
regains control from DBCHCL, it can obtain the appropriate output values from the
DBCAREA.
Field Descriptions
The DBCAREA contains seven logical sections:
•
Header
•
General Inputs
•
General Outputs
•
Function Specific
•
Options
•
Message
Each logical section consists of multiple fields, which are presented in their physical order in
Table 4 on page 76.
For each of the fields described in the following sections, a table that lists the language used
and the corresponding variable name.
Function Abbreviations
Functions are abbreviated as follows:
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
67
Chapter 3: DBCAREA
Field Descriptions
Abbreviations
Call to DBCHCL for this function
CON
Connect
RSUP
RunStartUp
IRQ
Initiate Request
CRQ
Continue-request
IWPF
Initiate With Protocol-Function
REW
Rewind
ERQ
End Request
ABT
Abort
DSC
Disconnect
CMD
Command
FET
Fetch
Input Fields
The input fields are used by an application to indicate an action to be taken, to set processing
options, and to pass data to CLIv2. Some of the fields are used to construct parcels for
Teradata Database.
Output Fields
The output fields are used by CLIv2 to provide the return code from the action requested and
to pass back information from CLIv2 (for example, a pointer to a parcel in the response).
Include files, which define this area, are provided for the supported languages, which are any
language that supports standard IBM call linkage.
Note: Some fields are treated differently in different functions and by different clients.
Table 2: Order of the DBCAREA
Byte Offset
(in decimal)
000
000
001
002
003
Eyecatcher, 8 bytes
004
68
008
Total Length, 4 bytes
012
Function, 4 bytes
016
Input CLIv2 Connection Id, 4 bytes
020
Input CLIv2 Request Id, 4 bytes
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Field Descriptions
Table 2: Order of the DBCAREA (continued)
Byte Offset
(in decimal)
000
001
002
003
024
Request Buffer Length, 4 bytes
028
Response Buffer Length, 4 bytes
032
Anticipated Number of Concurrent Sessions, 4 bytes
036
Request-token, 4 bytes
040
Return Code, 4 bytes
044
Output CLIv2 Connection Id, 4 bytes
048
Output CLIv2 Request Id, 4 bytes
052
Output TDP Path, 8 bytes
056
060
064
Output TDP Session Id, 4 bytes
Output Host Id, 2 bytes
Session Status,
1 byte
068
TDP Request Number, 4 bytes
072
Current Request Buffer Length, 4 bytes
076
Current Response Buffer Length, 4 bytes
080
Input TDP Path, 8 bytes
Unused, 1 byte
084
088
Logon Pointer, 4 bytes
092
Logon Length, 4 bytes
096
Run Pointer, 4 bytes
100
Run Length, 4 bytes
104
Request Pointer, 4 bytes
108
Request Length, 4 bytes
112
Using Data Pointer, 4 bytes
116
Using Data Length, 4 bytes
120
124
Reserved for internal use, 10 bytes
128
Unused, 2 bytes
132
Open Request, 4 bytes
136
Fetch Maximum Data Length, 4 bytes
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
69
Chapter 3: DBCAREA
Field Descriptions
Table 2: Order of the DBCAREA (continued)
Byte Offset
(in decimal)
000
001
002
140
Fetch Data Pointer, 4 bytes
144
Fetch Returned Data Length, 4 bytes
148
Fetch Parcel Flavor, 4 bytes
152
Unused, 4 bytes
156
TDP-receipt-timestamp, 8 bytes
003
160
164
Time1, 4 bytes
168
Time2, 4 bytes
172
Time3, 4 bytes
176
Time4, 4 bytes
180
Time5, 4 bytes
184
Character Set Pointer, 4 bytes
188
(reserved for network use, 8 bytes)
192
196
200
Unused, 16 bytes
204
208
212
70
Extension Pointer, 4 bytes
216
Change Options,
1 byte
Response Mode,
1 byte
Use Presence Bits,
1 byte
Keep Response,
1 byte
220
Wait During Delay,
1 byte
Tell if Delay,
1 byte
Reserved for
network use, 1 byte
Locate Mode,
1 byte
224
Variable Length
Request, 1 byte
Variable Length
Fetch, 1 byte
Save Response
Buffer, 1 byte
Two Response,
Buffers, 1 byte
228
Return Time,
1 byte
Parcel Mode Fetch,
1 byte
Wait for Response,
1 byte
Request Processing
Option, 1 byte
232
Reserved for
network use, 1 byte
Set Character Set,
1 byte
Connect Type,
1 byte
Request Mode,
1 byte
236
2PC,
1 byte
Protocol-Function,
1 byte
Transaction
Semantics,1 byte
Language
Conformance, 1
byte
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Field Descriptions
Table 2: Order of the DBCAREA (continued)
Byte Offset
(in decimal)
240
000
001
002
Unused, 2 byte
003
Message Text Length, 2 bytes
244
|.....|
Message Text, 76 bytes
316
320
Route Description Codes, 4 bytes
324
Unused, 4 bytes
328
Reserved for internal use, 4 bytes
332
Unused, 8 bytes
336
340
344
C2S Conversion,
1byte
S2C Conversion,
1 byte
Language Id, 2 bytes
Date Form,
1 byte
Maximum
Parcel, 1 byte
Country Id, 2 bytes
348
Segment Data, 1byte
Return-objects-as,
1 byte
Continued-data,
1 bytes
Data-encryption,
1 byte
352
Request-parcelformat, 1 byte
Statement-status,
1 byte
Continuedcharacters-state,
1 byte
APH-response-OK,
1 byte
356
Return-statementinfo
Return-identitydata
Positioning-statement-number, 2 bytes
Positioning-value, 8 bytes
360
364
368
372
376
380
Positioning-action, 2 bytes
Level, 1 byte
Message Charset
Used, 1 byte
Message Length, 2 bytes
Timing-precision, 2 bytes
Message Return Code, 2 bytes
Message Area Length, 2 bytes
Message Area Pointer, 4 bytes
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
71
Chapter 3: DBCAREA
Field Descriptions
When the Level field is not binary '0', the following fields are also present:
Table 3: Order of the Enlarged DBCAREA When Level > 0
Byte Offset
(in decimal)
000
001
002
003
384
|....|
Unused, 148 bytes
532
Unused, 1 byte
Time1-status, 1
byte
Time2-status, 1
byte
Time3-status, 1
byte
536
Time4-status, 1 byte
Time5-status, 1
byte
Wait-exclusion,
1 byte
Use-default-conn, 1
byte
540
Using-data-count, 4 bytes
544
Mechanism-name, 8 bytes
548
552
Unused, 4 bytes
556
Mechanism-data-ptr, 4 bytes
560
Mechanism-data-len, 4 bytes
564
Result-sets-OK,
1 byte
Return-result-setsto, 1 byte
568
Unused, 4 bytes
572
Using-data-pointer-vector, 4bytes
576
Unused, 4 bytes
580
Using-data-length-vector, 4 bytes
584
Max-decimal-returned, 2 bytes
Transforms-off
1 byte
588
Workload-length, 4 bytes
592
Unused, 4 bytes
596
Workload-pointer, 4 bytes
600
Unused, 4 bytes
604
Session-desc-pointer, 4 bytes
608
Session-desc-length, 4 bytes
612
616
72
Mechanism-dataencoding, 1byte
Trusted-request
1 byte
Column-info
1 byte
Utility-workload
1 byte
Delegate-useridentity, 1 byte
Period-as-Struct
1 byte
Unused 1 byte
Unused, 20 bytes
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Anticipated Number of Concurrent Sessions
Table 3: Order of the Enlarged DBCAREA When Level > 0 (continued)
Byte Offset
(in decimal)
000
001
636
002
Unused, 3 bytes
003
Refresh-cacheddata, 4 bytes
Anticipated Number of Concurrent Sessions
Anticipated Number of Concurrent Sessions is a four-byte field that refers to the maximum
number of sessions expected to be concurrently established.
Language
Variable
COBOL
DBCAREA-MAX-NUM-SESS
PL/I
MAX_NUM_SESS
C
max_num_sess
IBM Assembler
DBCISMAX
Routine
Action
DBCHINI
writes
DBCHCL
reads (CON; RSUP; IRQ; IWPF; CMD)
DBCHWAT
Maximum Number of Sessions is used by...
To...
applications
write
The value of zero for Anticipated Number of Concurrent Sessions indicates that the default
value from the HSHSPB is used for the Anticipated Number of Concurrent Sessions. The
application may change the value of Anticipated Number of Concurrent Sessions by
supplying the preferred value in the DBCAREA. The minimum value is 1, and the maximum
value is 999.
Anticipated Number of Concurrent Sessions is used for two purposes. When CLIv2 must wait
for one or more sessions to complete, it must build a list of system-dependent control blocks
on which it will wait. If CLIv2 obtains a list of a particular size and then on a subsequent call
needs a larger list, it must free the existing list and obtain a larger one. You can avoid this
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
73
Chapter 3: DBCAREA
APH-response-OK
overhead by obtaining an appropriately sized list the first time. CLIv2 rounds the specified
value up to the next multiple of 16 and obtains a list of this size.
When a request or response is processed, CLIv2 must lookup the CLIv2 internal information
for that session. The larger the number of simultaneous sessions, the less efficient such session
lookup can be. CLIv2 uses the value set for the Anticipated Number of Concurrent Sessions
when the first session is connected to optimize the internal lookup algorithm. So setting an
accurate value initially can reduce the CPU used by CLIv2 on all subsequent calls.
APH-response-OK
APH-response-OK specifies whether response parcels may use the alternate parcel header.
Applications that use buffer-mode to fetch responses must be changed to properly handle
such alternate parcel headers, then specify this option to indicate such support exists. Other
applications require no changes except the specification of this option. If a response parcel
exceeds 65535 bytes but this option is not specified, error code 3177 will be returned.
74
In this language...
The variable name for APH-response-OK is...
COBOL
DBRIAPH
PL/I
DBRIAPH
C
dbriAPH
IBM Assembler
DBRIAPH
This routine...
Does this forAPH-response-OK...
DBCHINI
writes
DBCHCL
reads (RSUP; IRQ; IWPF)
APH-response-OK is used by...
To...
applications
write.
If...
Then set APH-response-OK to...
response parcels may not use alternate parcel
headers
'N'
response parcels may use alternate parcel headers
'Y'
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Change Options
Note: For new applications, APH-response-OK should always be set to ‘Y‘.
Mnemonics should be used for the codes. Mnemonics are provided in the language definition
file for the DBCAREA.
Change Options
Change Options is a one-byte field that specifies whether any options have been changed since
the last time they were scanned by CLIv2.
In this language...
The variable name for Change Options is...
COBOL
DBCAREA-CHANGE-OPTS
PL/I
CHANGE_OPTS
C
change_opts
IBM Assembler
DBOSETO
This routine...
Does this for Change Options...
DBCHINI
writes
DBCHCL
reads and writes (CON; CMD; RSUP; IRQ; CRQ; IWPF)
Change Options is used by...
To...
applications
write.
Interaction with Other Data Structures
Options are always scanned for a connect (CON) request, regardless of the setting for the
field. Change Options are honored on subsequent requests that initiate the following
functions:
•
IRQ
•
CRQ
•
RSUP
•
CMD
•
IWPF
If the value provided is not appropriate for the application, before calling DBCHCL for the
connect option, an application can change the value according to the following generalized
procedure:
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
75
Chapter 3: DBCAREA
Change Options
1
Set Change Options to ‘Y‘.
2
Change the value for <option> as follows.
If the application requires...
Then set <option> to...
<desired condition>
<option that specifies the desired condition>
Performance Issues
Options processing is expensive, so it is prudent to use it only when necessary, but such
processing might be necessary immediately after a call to DBCHINI to establish
application-specific defaults. After that, it is only necessary if some processing option is
changed. CLIv2 sets Change Options back to N.
Options Scanned When Set to Y
Table 4 summarizes the options that scanned for each function if Change Options is set to ‘Y‘.
Table 4: Change Options Scanning
no
no
no
no
no
APH-response-OK
no
yes
yes
yes
no
no
no
no
no
no
no
Column-info
no
no
yes
yes
yes
no
no
no
no
no
no
Connect Type
yes
no
no
no
no
no
no
no
no
no
no
Continue-data
no
no
no
no
no
yes
no
no
no
no
no
Continued-characters-state
no
yes
yes
yes
no
no
no
no
no
no
no
C2S Conversion
yes
yes
yes
yes
no
yes
no
no
no
no
no
Data-encryption
no
yes
yes
yes
no
no
no
no
no
no
no
Date Form
yes
no
no
no
no
no
no
no
no
no
no
Delegate-user-identity
yes
no
no
no
no
no
no
no
no
no
no
Country Id
yes
no
no
no
no
no
no
no
no
no
no
Keep Response
no
yes
yes
yes
yes
no
no
no
no
no
no
Language Conformance
yes
no
no
no
no
no
no
no
no
no
no
Language Id
yes
no
no
no
no
no
no
no
no
no
no
Locate Mode
yes
yes
yes
no
yes
yes
no
no
no
no
no
76
Fetch
no
Disconnect
yes
Abort
yes*
End Request
yes*
Rewind
yes*
Continue-request
Initiate Within
Protocol-Function
no
Command
Initiate Request
Anticipated Num Sessions
Options Scanned
Connect
RunStartUp
Function
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Change Options
Table 4: Change Options Scanning (continued)
Fetch
Disconnect
Abort
End Request
Rewind
Continue-request
Command
Initiate Within
Protocol-Function
Initiate Request
RunStartUp
Options Scanned
Connect
Function
Maximum-decimal-returned
no
yes
yes
yes
no
no
no
no
no
no
no
Maximum Parcel
yes
yes
yes
yes
yes
yes
no
no
no
no
no
Mechanism-data-encoding
yes
yes*
yes*
yes*
no
no
no
no
no
no
no
Parcel Mode Fetch
yes
yes
yes
yes
yes
yes
no
no
no
no
no
Period-as-Struct
no
no
yes
yes
yes
no
no
no
no
no
no
Positioning-action
no
no
no
no
no
no
no
no
no
no
yes
Positioning-statement-number
no
no
no
no
no
no
no
no
no
no
yes
Positioning-value
no
no
no
no
no
no
no
no
no
no
yes
Protocol-Function
no
no
yes
no
no
no
no
no
no
no
no
Request Buffer Length
yes
yes*
yes*
yes*
no
no
no
no
no
no
no
Refresh-cached-data
no
yes
yes
yes
no
no
no
no
no
no
no
Request Mode
yes
yes
yes
yes
no
yes
no
no
no
no
no
Request-parcel-format
yes
yes
yes
yes
no
no
no
no
no
no
no
Request Processing Option
yes
yes
yes
yes
no
no
no
no
no
no
no
Response Buffer Length
yes
yes
yes
yes
yes
yes
no
no
no
no
no
Response Mode
yes
yes
yes
yes
yes
no
no
no
no
no
no
Result-sets-OK
no
yes
yes
yes
no
no
no
no
no
no
no
Return-identity-data
no
yes
yes
yes
no
no
no
no
no
no
no
Return-objects-as
yes
yes
yes
yes
no
no
no
no
no
no
no
Return-result-to
no
yes
yes
yes
no
no
no
no
no
no
no
Return-statement-info
no
yes
yes
yes
no
no
no
no
no
no
no
Return Time
yes
yes
yes
yes
yes
yes
no
no
no
no
no
Save Response Buffer
yes
yes
yes
yes
no
yes
no
no
no
no
no
Segment Data
yes
no
yes
yes
no
no
no
no
no
no
no
Set Character Set
yes
yes
yes
yes
no
no
no
no
no
no
no
Statement-status
yes
yes*
yes*
yes*
no
no
no
no
no
no
no
S2C Conversion
yes
yes
yes
yes
no
yes
no
no
no
no
no
Tell if Delay
yes
yes
yes
yes
yes
yes
no
no
no
no
no
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
77
Chapter 3: DBCAREA
Character Set Pointer
Table 4: Change Options Scanning (continued)
Fetch
Disconnect
Abort
End Request
Rewind
Continue-request
Command
Initiate Within
Protocol-Function
Initiate Request
Options Scanned
RunStartUp
Connect
Function
Timing-precision
yes
yes
yes
yes
yes
yes
no
no
no
no
no
Transaction Semantics
yes
no
no
no
no
no
no
no
no
no
no
Transforms-off
no
no
yes
yes
yes
no
no
no
no
no
no
Trusted-request
no
no
yes
yes
yes
no
no
no
no
no
no
Two Response Buffer
yes
yes
yes
yes
no
no
no
no
no
no
no
2PC
yes
no
no
no
no
no
no
no
no
no
no
Use-default-conn
yes
yes*
yes*
yes*
no
no
no
no
no
no
no
Use Presence Bits
yes
yes
yes
yes
yes
no
no
no
no
no
no
Utility-workload
no
yes
yes
yes
yes
no
no
no
no
no
no
Variable Length Fetch
yes
yes
yes
yes
yes
yes
no
no
no
no
no
Variable Length Request
yes
yes
yes
yes
yes
yes
no
no
no
no
no
Wait During Delay
yes
yes
yes
yes
yes
yes
no
no
no
no
no
Wait-exclusion
yes
yes*
yes*
yes*
yes
no
no
no
no
no
no
Wait For Response
yes
yes
yes
yes
yes
yes
no
no
no
no
no
* These values are needed only for an implicit Connect.
Character Set Pointer
Character Set Pointer is a four-byte field that specifies the address of a 30-byte character set
name to be used on the current and subsequent requests and responses. A character set name
can only contain characters from the standard EBCDIC character set.
CLIv2 recognizes the following character sets, which have EBCDIC characteristics supplied by
Teradata Database:
78
•
“EBCDIC” on page 375
•
“EBCDIC037_0E” on page 377
•
“EBCDIC273_0E” on page 378
•
“EBCDIC277_0E” on page 379
•
“HANGULEBCDIC933_1II” on page 380
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Character Set Pointer
•
“KANJIEBCDIC5026_0I” on page 385
•
“KANJIEBCDIC5035_0I” on page 391
•
“KATAKANAEBCDIC” on page 397
•
“SCHEBCDIC935_2IJ” on page 403
•
“TCHEBCDIC937_3IB” on page 405
CLIv2 also recognizes the following character sets, which have ASCII characteristics supplied
by Teradata Database:
•
ARABIC1256_6A0, defined by Microsoft code
•
ASCII, defined by IBM code
•
CYRILLIC1251_2A0, defined by Microsoft code
•
HANGUL949_7R0, defined by Microsoft code
•
HANGULKSC5601_2R4, defined by IBM code
•
HEBREW1255_5A0, defined by Microsoft code
•
KANJI932_1S0, defined by Microsoft code
•
KANJIEUC_0U, defined by IBM code
•
KANJISJIS_0S, defined by IBM code
•
LATIN1_0A, defined by IBM code
•
LATIN1250_1A0, defined by Microsoft code
•
LATIN1252_3A0, defined by Microsoft code
•
LATIN1254_7A0, defined by Microsoft code
•
LATIN1258_8A0, defined by Microsoft code
•
LATIN9_0A, defined by ISO/IEC 8859-15
•
SCHGB2312_1T0, defined by IBM code
•
SCHINESE936_6R0, defined by Microsoft code
•
TCHBIG5_1R0 defined by IBM code
•
UTF8, defined by ISO/IEC 10646
•
UTF16, defined by ISO/IEC 10646
The characteristics of user-defined character sets are described to CLIv2 using the TRD2XUT
utility program. See Chapter 13: “User-Defined Character Sets” for details.
User-defined character sets that have not been described to CLIv2 can be used, but their
characteristics (codepoints for Space, Apostrophe, Quotation Mark, Slash, the Substitute
control character, any character that appears in a TDPid, and the encoding scheme) are
assumed to be the same as for EBCDIC.
Language
Variable Name for Character Set Pointer
COBOL
DBCAREA-CSC-PTR
PL/I
CSC_PTR
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
79
Chapter 3: DBCAREA
Column-info
Language
Variable Name for Character Set Pointer
C
inter_ptr
IBM Assembler
DBCCSNP or DBCCSCP
Routine
Action for Character Set Pointer
DBCHINI
writes
DBCHCL
reads
Character Set Pointer is used by...
To...
applications
write
Interaction with Other Data Structures
This field is used in conjunction with the Set Character Set field in the options fields. The
character set pointer is initialized from the HSHSPB.
Column-info
Column-info is a one byte EBCDIC field that indicates whether varying-length column name,
title, and format information in existing response parcels (Field (flavor 18), PrepInfo[X]
(flavors 86 and 126), StmtInfo (flavor 169)) can be longer than the existing maximum.
80
In this language...
The variable name for Column-info is...
COBOL
COLUMN-INFO
PL/I
COLUMN-INFO
C
columnInfo
IBM Assembler
DBRICIN
This routine...
Does this for Column-info...
DBCHINI
writes
DBCHCL
reads (CON; IRQ; RSUP)
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Connect Type
Column-info is used by...
To...
applications
write.
One of the following values may be set before initiating a request: 'O' (DBRICINO for
Assembler, DBC_ColInfoOrig for C, ORIGINAL for COBOL, DBC_COL_INFO_ORIG for
PL/I), indicates varying-length column name, title, and format information in existing
response parcels cannot be longer than the existing maximum. 'E' (DBRICINE for Assembler,
DBC_ColInfoExt for C, EXTENDED for COBOL, DBC_COL_INFO_EXT for PL/I) indicates
varying-length column name, title, and format information in existing response parcels can
be longer than the existing maximum.
If not specified, the default from the HSHSPB is used, which as distributed is 'O'.
Connect Type
Connect Type is a one-byte field that specifies whether CLIv2 should send a separate logon
and run to the Teradata Database or a combined logon and connect. For new applications,
Connect-type should always be set to 'C' since all recent Teradata Databases support its use.
In this language...
The variable name for Connect Type is...
COBOL
DBCAREA-CONNECT-TYPE
PL/I
CONNECT_TYPE
C
connect_type
IBM Assembler
DBOCTYPE
This routine...
Does this for Connect Type...
DBCHINI
writes
DBCHCL
reads (CON; RSUP; IRQ)
Connect Type is used by...
To...
applications
write.
Connect Type is initialized to the default value provided for Connect Type in the site‘s
HSHSPB. If the value provided is not appropriate for an application, before calling DBCHCL
for the connect option, the application can change the value as follows:
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
81
Chapter 3: DBCAREA
Continued-characters-state
1
Set Change Options to ‘Y‘.
2
Change the value for Connect Type as follows.
Note: For new applications, Request-parcel-format should always be set to ‘H‘.
If...
Then set Connect Type to...
a separate logon and run should be sent to the Teradata
R
Database
a combined logon and connect should be sent to the Teradata
C
Database
Continued-characters-state
Continued-characters-state specifies whether character data crossing multiple response
parcels in MultipartIndicator mode is well-formed within each parcel or only when all parcels
are considered. This option has effect only if the character set being used supports lockingshifts (such as the Shift-out and Shift-in control characters).
In this language...
The variable name for Continued-characters-state is...
COBOL
DBRICCS
PL/I
DBRICCS
C
dbriCCS
IBM Assembler
DBRICCS
This routine...
Takes this action for Continued-characters-state...
DBCHINI
writes
DBCHCL
reads (RSUP; IRQ; IWPF)
Continued-characters-state is used by...
To...
applications
write
One of the following values can be set before initiating a request:
82
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Continued-data
If...
Then set Connect Type to...
the default, indicates that character data crossing multiple
response parcels is well-formed only when all parcels are
considered. This is appropriate if the data from all parcels
containing the data are to be concatenated.
'L'
indicates that character data crossing multiple response
parcels in MultipartIndicator mode is well-formed within
each parcel. This is appropriate if the data in each parcel is
processed separately.
'U'
Use mnemonics for the codes. Mnemonics are provided in the language definition file for the
DBCAREA.
Continued-data
Continued-data specifies the processing to be performed when the Continue-request function
is invoked. The value indicates whether the request is for the first, intermediate, or last
continuation, or whether processing is to be cancelled.
In this language...
The variable name for Continued-data is...
COBOL
DBNICNT
PL/I
DBNICNT
C
dbniCnt
IBM Assembler
DBNICNT
This routine...
Takes this action for Continued-data...
DBCHINI
DBCHINI does not initialize this value. When the Continue-request function is
needed by the application, the following procedure must be followed before
calling DBCHCL for the Continue-request function:
1 Set Change-options to 'Y'
2 Set the value for Continued-data as follows:
first segment, F
intermediate segment, I
last segment, L
cancel Continued-request, C
Note: Use mnemonics for the codes. Mnemonics are provided in the language
definition file for the DBCAREA.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
83
Chapter 3: DBCAREA
Country Id
This routine...
Takes this action for Continued-data...
DBCHCL
reads.
CRQ
Continued-data is used by...
To...
applications
write
Country Id
Country Id is a two-byte field that specifies the country variant of the language to be used for
all CLIv2 error messages returned in the Message Text DBCAREA field, and that were
associated with the session being connected. The value specifies a two-character Country Id.
Because the Country Id qualifies the language, Language Id must also be specified. When a
language is commonly used in several countries, the Country Id may be specified to select
messages that are unique to that country.
The Country Id is defined by the ISO 3166-1 standard. The value is in EBCDIC, and both
lowercase and uppercase characters are permitted.
84
In this language...
The variable name for Country Id is...
COBOL
DBCNICID
PL/I
DBCNICID
C
dbcniCid (case is significant)
IBM Assembler
DBCNICID
This routine...
Does this for Country Id. . .
DBCHINI
writes
DBCHCL
reads CON
Country Id is used by...
To...
applications
write
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Country Id
DBCHINI initializes the Country Id to the default value provided in the HSHSPB being used.
The distributed HSHSPB provides no default for Country Id; therefore, unless a Country is
specified, the Language Id alone defines the message language.
If a Country Id is appropriate for an application, the application should perform the following
procedure before calling DBCHCL for the connect function:
1
Set Change Options to ‘Y‘.
2
Change the value for Country Id as follows:
If the language is...
Then set Country Id to...
Arabic
No country differentiation supported.
Danish (Denmark)
DK
German (Germany)
DE
German (Switzerland)
CH
Greek (Greece)
GR
English (United States)
US
English (United Kingdom)
GB
Spanish (Spain)
ES
Finnish (Finland)
FI
French (France)
FR
French (Belgium)
BE
French (Canada)
CA
French (Switzerland)
CH
Hebrew (Israel)
IL
Icelandic (Iceland)
IS
Italian (Italy)
IT
Italian (Switzerland)
CH
Japanese (Japan)
JP
Korean (Republic of Korea)
KR
Dutch (Netherlands)
NL
Dutch (Belgium)
BE
Norwegian (Norway)
NO
Portuguese (Portugal)
PT
Portuguese (Brazil)
BR
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
85
Chapter 3: DBCAREA
Current Request Buffer Length
If the language is...
Then set Country Id to...
Romansh/Grishun (Switzerland)
CH
Russian (Russian Federation)
RU
Swedish (Sweden)
SE
Thai (Thailand)
TH
Turkish (Turkey)
TR
Chinese (China)
CN
Chinese (Taiwan)
TW
Messages are distributed in United States English (Language Id 'EN', optional Country Id
'US') only, although customers or Teradata Corporation in the various countries might
provide additional languages. The mechanism by which the CLIv2 error messages are be
defined in other languages is described in Chapter 13: “User-Defined Character Sets.”.
If a message must be returned, but messages are not available in the specified language, then
the message number with fixed message text of '(REQUIRED MESSAGE TABLE IS NOT
AVAILABLE)' in United States English is returned. For example, the message 'CLI0538
REQUEST REJECTED BY DELAY' would be presented as:
CLI0538 (REQUIRED MESSAGE TABLE IS NOT AVAILABLE)
Current Request Buffer Length
Current Request Buffer Length is a four-byte field that is the actual length of the request
buffer at the time the request is made.
86
In this language...
The variable name for Current Request Buffer
Length is...
COBOL
DBCAREA-CUR-REQ-BUF-LEN
PL/I
CUR_REQ_BUF_LEN
C
cur_req_buf_len
IBM Assembler
DBCORBLA
This routine...
Takes this action for Current Request Buffer
Length...
DBCHINI
writes
DBCHCL
writes (CON; RSUP; IRQ; IWPF; CMD; CRQ)
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Current Response Buffer Length
Current Request Buffer Length is used by...
To...
applications
read.
Current Response Buffer Length
Current Response Buffer Length is a four-byte field that is the actual length of the response
buffer at the time the request is made.
In this language...
The variable name for Current Response Buffer
Length is...
COBOL
DBCAREA-CUR-RESP-BUF-LEN
PL/I
CUR_RESP_BUF_LEN
C
cur_resp_buf_len
IBM Assembler
DBCOFBLA
This routine...
Does this for Current Response Buffer Length...
DBCHINI
writes
DBCHCL
writes (CON; RSUP; IRQ; FET; IWPF; CMD; CRQ)
Current Response Buffer Length is used by...
To...
applications
read.
After regaining control from a call to DBCHCL with function code set to any function except
Disconnect, an application can obtain the value of the actual response buffer length in
Current Response Buffer Length.
C2S Conversion
C2S Conversion is a one-byte field that specifies the action to be taken when data provided in
the client character set contains a character that does not exist in the character set of Teradata
Database.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
87
Chapter 3: DBCAREA
C2S Conversion
In this language...
The variable name for C2S Conversion is...
COBOL
DBCAREA-C2S-CONVERSION
PL/I
C2S_CONVERSION
C
c2s_conversion
IBM Assembler
DBCIC2SC
This routine...
Does this for C2S Conversion...
DBCHINI
writes
DBCHCL
reads (CON; RSUP; IRQ; IWPF; CRQ)
C2S Conversion is used by...
To...
applications
write
C2S Conversion is initialized to the default value provided for C2S Conversion in the site‘s
HSHSPB. But if the value is not appropriate for the application, the application may, before
calling DBCHCL for Initiate or Initiate With Protocol-Function, change the value as follows:
1
Set Change Options to ‘Y‘.
2
Change the value for C2S Conversion as follows:
If...
Then set C2S
Conversion to...
such conversions are to be rejected and terminate the request
R
such conversions are to be ignored (and the unacceptable character
replaced by the character in the client‘s character set defined to be used
to represent invalid characters)
I
the Teradata Database default C2S Conversion setting is to be used
D
Use mnemonics for the codes. Mnemonics are provided in the language definition file for the
DBCAREA.
88
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Data-encryption
Data-encryption
Data-encryption specifies whether the data for a request and the associated response is to be
encrypted. If encryption is specified but not supported, the request will be rejected.
Encryption is currently not supported for a channel- attached system.
In this language...
The variable name for Data-encryption is...
COBOL
DBRIDEN
PL/I
DBRIDEN
C
dbriDEn
IBM Assembler
DBRIDEN
This routine...
Takes the action for Data-encryption. . .
DBCHINI
writes
DBCHCL
reads (RSUP; IRQ; IWPF)
Data-encryption is used by...
To...
applications
write
One of the following values may be set before calling the Fetch function:
If...
Then set Data-encryption to...
do not encrypt the data (default)
N
encrypt the data
Y
Mnemonics are provided in the language definition file for the DBCAREA and should be used
for the codes.
Date Form
Date Form is a one-byte field that specifies whether dates are stored in Teradata or ANSI
format. When Date-Form 'A' is specified, Connect-type 'C' must also be specified.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
89
Chapter 3: DBCAREA
Date Form
In this language...
The variable name for Date Form is...
COBOL
DATE-FORM
PL/I
DATE_FORM
C
date_form
IBM Assembler
DBCNIDF
This routine...
Takes the action for Date Form...
DBCHINI
writes
DBCHCL
reads (CON)
Date Form is used by...
To...
applications
write
Date Form is initialized to the default value provided for Date Form in the site‘s HSHSPB. If
the value is not appropriate for an application, the application may, before calling DBCHCL
for Connect, change the values as follows:
1
Set Change Options to ‘Y‘.
2
Change the value for Date Form as follows:
Then change the
value for Date Form
to...
If...
dates are stored using the default setting for the user (if such a default is
associated with the user) or for the server
D
date are stored in Teradata format
T
dates are stored in ANSI format
A
Note: T may always be specified, but A is rejected if the server does not support ANSI date
formats.
Use mnemonics for the codes. Mnemonics are provided in the language definition file for the
DBCAREA.
90
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Delegate-user-identity
Delegate-user-identity
Delegate-user-identity is a one-byte EBCDIC field that indicates whether the new
connection's user identity is made available to applications on Teradata Database so that they
may act on behalf of the user. The identity is an internal representation of the identity, not
simply a cleartext password.
Use of this option requires specification of a Mechanism-name.
Delegate-user-identity exists only when DBCHINI had been called for a DBCAREA with
Total-length set to at least 640 (that is, the returned DBCAREA Level value is at least 1). For a
smaller DBCAREA, Delegate-user-identity is ignored.
Note: Logon mechanisms are currently not supported for a channel-connected system.
In this language...
The variable name for Delegate-user-identity is...
COBOL
DELEGATE-USER-IDENTITY
PL/I
DELEGATE_USER_IDENTITY
C
delegateUserIdentity
IBM Assembler
DBCNIDI
This routine...
Does this for Delegate-user-identity...
DBCHINI
writes
DBCHCL
reads (RCON)
C
delegateUserIdentity
IBM Assembler
DBCNIDI
Delegate-user-identity is used by...
To...
applications
write
One of the following values can be set before initiating a request:
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
91
Chapter 3: DBCAREA
Extension Pointer
If...
Then set Connect Type to...
indicates that a new connection is established.
'N'
•
•
•
•
indicates that the new connection's user identity
is delegated to the Teradata Database for use by
application there.
DBCNIDIN for Assembler
DBC_DelegateIdNo for C
DBC-NO for COBOL
DBC_DELEGATE_ID_NO for PL/I
'Y'
•
•
•
•
DBCNIDIY for Assembler
DBC_DelegateIdYes for C
DBC-YES for COBOL
DBC_DELEGATE_ID_YES for PL/I
Extension Pointer
Extension Pointer is a four-byte field that specifies the address of the first or only DBCAREA
extension.
In this language...
The variable name for Extension Pointer is...
COBOL
DBCAREA-EXT-PTR
PL/I
EXT_PTR
C
extension_pointer
IBM Assembler
DBCAXP
This routine...
Takes the action for Extension Pointer...
DBCHINI
writes
DBCHCL
reads (IRQ; IWPF)
Extension Pointer is used by...
To...
applications
write
Each extension applies only to particular functions, so care must be taken to address the
proper extension before invoking a function and clearing the Extension Pointer when that
function is complete.
92
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Eyecatcher
For more information about DBCAREA extensions, see Chapter 4: “DBCAREA Extensions.”
Eyecatcher
The Eyecatcher field is an eight-byte field that is used for self-documentation and debugging.
Eyecatcher is set to DBCAREA by a call to DBCHINI.
In this language...
The variable name for Eyecatcher is...
COBOL
DBCAREA-EYECATCHER
PL/I
EYECATCHER
C
eyecatcher
IBM Assembler
DBCAID
This routine...
Does this for Eyecatcher...
DBCHINI
writes
Fetch Data Pointer
Fetch Data Pointer is a four-byte field that has different meanings in Move Mode and Locate
Mode. The following discussion covers the common properties of Fetch Data Pointer in Move
or Locate Mode.
In this language...
The variable name for Fetch Data Pointer is...
COBOL
DBCAREA-FET-DATA-PTR
PL/I
FET_DATA_PTR
C
fet_data_ptr
IBM Assembler
DBFXFDP
Fetch Data Pointer—Move Mode
In the Move Mode, Fetch Data Pointer is where an application specifies the address of its
move area before fetching results from the listed requests.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
93
Chapter 3: DBCAREA
Fetch Data Pointer
This routine...
Does this for Fetch Data Pointer in Move Mode...
DBCHINI
writes
DBCHCL
reads (FET)
The following table explains how Fetch Data Pointer works in Move Mode (Locate Mode =
N) when DBCHCL is called for the following functions:
•
Connect
•
RunStartUp
•
Command
•
Initiate Request
•
Initiate with Protocol-Function
IF Variable Length Fetch is set to this
value in DBCAREA...
THEN the address in Fetch Data Pointer points to the ...
N
first byte of the parcel body.
Y
two-byte length field that precedes the returned data.
In Move Mode, only the number of bytes that constitute the length are affected in the move
area. The bytes beyond are unaffected.
In Move Mode, Fetch Data Pointer is used by...
To...
applications
write (FET)
Fetch Data Pointer—Locate Mode
In the Locate Mode, DBCHCL places Fetch Data Pointer in the DBCAREA when the fetch
function completes. Thus, Fetch Data Pointer is available when the application regains
control with a return code of zero from a call to DBCHCL for the fetch function.
This routine...
Does this for Fetch Data Pointer in Locate Mode...
DBCHINI
writes
DBCHCL
writes (FET)
The following table explains how Fetch Data Pointer works in Locate Mode (Locate Mode =
‘Y‘) when DBCHCL is called for the following functions:
94
•
Connect
•
RunStartUp
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Fetch Maximum Data Length
•
Initiate with Protocol-Function
•
Command
•
Initiate Request.
If you use this
mode...
And you set
Variable Length
Fetch in
DBCAREA to
this value...
And you set
Parcel Mode
Fetch in
DBCAREA to
this value...
Then the address in Fetch Data Pointer
points to the...
parcel
N
none
first byte of the parcel body.
parcel
Y
none
two byte length field that precedes the
returned data.
buffer
N
N
first byte of the buffer, which is the first
byte of the parcel header of the first parcel.
In Locate Mode, Fetch Data Pointer is used by...
To...
applications
read (FET)
Fetch Maximum Data Length
Fetch Maximum Data Length is a four byte field that specifies the length in bytes of the move
area, if any, allocated by the application.
In this language...
The variable name for Fetch Maximum Data Length is...
COBOL
DBCAREA-FET-MAX-DATA-LEN
PL/I
FET_MAX_DATA_LEN
C
fet_max_data_len
IBM Assembler
DBFIFDL
This routine...
Does this for Fetch Maximum Data Length...
DBCHINI
writes
DBCHCL
reads (FET)
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
95
Chapter 3: DBCAREA
Fetch Parcel Flavor
Fetch Maximum Data Length is used by...
To...
applications
write
Review the following conditions before calling DBCHCL for any of the following functions:
•
Connect
•
RunStartUp
•
Initiate with Protocol-Function
•
Command
•
Initiate Request
If an application is using Move Mode for processing the parcels in the response (that is, Locate
Mode is set to N and Parcel Mode Fetch is set to Y in the DBCAREA), then the application
must allocate the move area and place its length in Fetch Maximum Data Length.
If Maximum Data Length is set to...
Then the largest parcel body is...
O
32763
H
2,147,483,639
Whether Variable Length Fetch is set to N or Y, the length of the move area must be large
enough for the largest parcel body. If Variable Length Fetch is set to Y, two more bytes are
required for the preceding length field.
Fetch Parcel Flavor
Fetch Parcel Flavor is a four-byte field that is the flavor of the parcel containing the returned
data.
96
In this language...
The variable name for Fetch Parcel Flavor is...
COBOL
DBCAREA-FET-PARCEL-FLAVOR
PL/I
FET_PARCEL_FLAVOR
C
fet_parcel_flavor
IBM Assembler
DBFOPFLV
This routine...
Does this for Fetch Parcel Flavor...
DBCHINI
writes
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Fetch Returned Data Length
This routine...
Does this for Fetch Parcel Flavor...
DBCHCL
writes (FET)
Fetch Parcel Flavor is used by...
To...
applications
read
After a fetch function completes and the application regains control with a return code of
zero, the application can obtain the flavor or type of parcel returned. This is true only if Parcel
Mode Fetch was set to Y in the DBCAREA when DBCHCL was called for any of the following
functions:
•
Connect
•
RunStartUp
•
Initiate with Protocol-Function
•
Command
•
Initiate Request
Fetch Returned Data Length
Fetch Returned Data Length is a four-byte field that specifies the length in bytes of the
returned data.
In this language...
The variable name for Fetch Returned Data
Length is...
COBOL
DBCAREA-FET-RET-DATA-LEN
PL/I
FET_RET_DATA_LEN
C
fet_ret_data_len
IBM Assembler
DBFOFDL
This routine...
Does this for Fetch Returned Data Length...
DBCHINI
writes
DBCHCL
writes (FET)
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
97
Chapter 3: DBCAREA
Function
Fetch Returned Data Length is used by...
To...
applications
read
After a call to DBCHCL for the fetch function, an application can obtain the length of the
returned data. Where the length is provided and what the length refers to depends on the
settings in effect when DBCHCL is called for any of the following functions:
•
Connect
•
RunStartUp
•
Initiate Request
Table 5 shows how the location and meaning of “length” varies depending upon mode
settings.
Table 5: Length of Returned Data
Locate
Mode
Variable
Length
Parcel
Mode Fetch Fetch
Length of What?
Where Length is Provided
Y or N
Y
N
Parcel body
Fetch Returned Data Length
Y or N
Y
Y
Parcel body
The first two bytes at the
address in Fetch Data Pointer
Y
N
N
The grand total of all
parcels (headers and
bodies) in the response
buffer
Fetch Returned Data Length
Y
N
Y
Nothing. These settings
produce an error.
DBCHCL places Fetch Returned Data Length, if used, in the DBCAREA when the Fetch
function completes. Thus, Fetch Data Pointer is available when an application regains control
with a return code of zero from a call to DBCHCL for the Fetch function.
Function
Function is a four-byte field that is used by an application to specify the operation to be
carried out by DBCHCL. Each of the following codes represents a different operation:
98
Code
Operation
1
Connect
2
Disconnect
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Function
Code
Operation
3
RunStartUp
4
Initiate Request
5
Fetch
6
Rewind
7
Abort
8
End Request
11
Initiate With Protocol-Function
14
Command
15
ContinueRequest
In this language...
The variable name for Function is...
COBOL
DBCAREA-FUNC
PL/I
FUNC
C
func
IBM Assembler
DBCAFUNC
This routine...
Does this for Function...
DBCHINI
writes
DBCHCL
reads
Function is used by...
To...
applications
write
An application must set the Function field to the appropriate nonzero value before calling
DBCHCL. Use mnemonics for the codes. Mnemonics are provided in the language definition
file for the DBCAREA.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
99
Chapter 3: DBCAREA
Input CLIv2 Connection Id
Input CLIv2 Connection Id
The Input CLIv2 Connection Id is a four-byte field that specifies the session to be acted on by
DBCHCL.
In this language...
The variable name for Input CLIv2 Connection Id is...
COBOL
DBCAREA-I-SESS-ID
PL/I
I_SESS_ID
C
i_sess_id
IBM Assembler
DBCICONN
This routine...
Does this for Input CLIv2 Connection Id...
DBCHINI
writes
DBCHCL
reads (RSUP; IRQ; FET; REW; ERQ; ABT; DSC; CMD; IWPF; CRQ)
Input CLIv2 Connection
Id is used by...
To...
applications
write
Applications copy the value from Output CLIv2 Connection Id into Input CLIv2 Connection
Id. If an application uses the same DBCAREA to run sessions concurrently, it should save
Output CLIv2 Connection Id from each session logon.
Applications must store the appropriate value of Output CLIv2 Connection Id in Input CLIv2
Connection Id whenever then need the next DBCHCL call to affect a different session.
When DBCHCL is called for the RunStartUp, Command, Initiate with Protocol-Function, or
Initiate Request function, an implicit Connect function takes place first if Input CLIv2
Connection Id is zero.
Input CLIv2 Request Id
Input CLIv2 Request Id is a four-byte field that specifies the request to be acted on by
DBCHCL.
100
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Input TDP Path
In this language...
The variable name for Input CLIv2 Request Id is...
COBOL
DBCAREA-I-REQ-ID
PL/I
I_REQ_ID
C
i_req_id
IBM Assembler
DBCIREQN
This routine...
Does this for Input CLIv2 Request id...
DBCHINI
writes
DBCHCL
reads (FET; REW; ERQ; ABT; IWPF; CMD; CRQ)
Input CLIv2 Request Id is used by...
To...
applications
write
Applications copy the value that was placed by the Connect, RunStartUp, Initiate with
Protocol-Function, or Initiate Request function in Output CLIv2 Request Id into Input CLIv2
Request Id. If an application uses the same DBCAREA for more than one concurrent request
or more than one session, it should save the Output CLIv2 Request Id from each request‘s
submission.
Applications must store the appropriate value of Output CLIv2 Request Id in Input CLIv2
Request Id whenever they need the next DBCHCL call to affect a different request.
Input TDP Path
Input TDP Path is an eight-byte field that specifies the route to Teradata Database if it is not
specified (as TDpid) in the logon string.
In this language...
The variable name for Input TDP Path is...
COBOL
DBCAREA-I-DBCPATH
PL/I
I_DBCPATH
C
i_dbcpath
IBM Assembler
DBCNITDP
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
101
Chapter 3: DBCAREA
Keep Response
This routine...
Does this for Input TDP Path...
DBCHINI
writes
DBCHCL
reads (CON)
CON
Input TDP Path is used by...
To...
applications
write
The specified TDP identifier (TPpid) must only contain characters from the standard
EBCDIC character set. When DBCHCL is called for the Connect function, TDpid is obtained
from the logon string if one is provided and if it contains a TDpid. If TDpid is not available
from the logon string, then DBCHCL takes tdpid from Input TDP Path. If the first character
of Input TDP Path is hex 00 or 40, DBCHCL obtains TDpid from MVSTDP for z/OS in the
HSHSPB.
On z/OS, TDpid specifies the z/OS subsystem name, which must have the form TDPx, where
x is 0-9, A-Z (not case specific), $, #, or @. The first three characters must be TDP.
Keep Response
Keep Response is a one-byte field that specifies whether Teradata Database is to keep the spool
file after it sends the last parcel of the Teradata SQL response to the client.
Within an External Stored Procedure, a request initiated with the DBCAREA Return-result-to
option, a Keep-response setting of 'N' is not permitted. A setting of 'Y' indicates that the
results are non-scrollable so are positioned to the next unfetched row, with fetched rows not
propagated; while a setting of 'P' indicates that results are scrollable so the propagated results
are positioned to the last row fetched, with earlier fetched rows also propagated.
If the procedure used a multi-statement request (multiple SQL statements separated by
semicolons) to return results, the response to each of these requests is reflected. If the
procedure positioned to other than the first of these responses, the earlier ones are positioned
beyond the end of their rows. While scrollable results may be repositioned to these earlier
statement rows, non-scrollable results cannot.
102
In this language...
The variable name for Keep Response is...
COBOL
DBCAREA-KEEP-RESP
PL/I
KEEP_RESP
C
keep_resp
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Keep Response
In this language...
The variable name for Keep Response is...
IBM Assembler
DBOKRSP
This routine...
Does this for Keep Response...
DBCHINI
writes
DBCHCL
reads (CON; RSUP; IRQ; IWPF; CMD)
Keep Response is used by...
To...
applications
write.
Keep Response is initialized by DBCHINI to the default value provided for Keep Response in
the HSHSPB. When the value for Keep Response is not appropriate for the application, the
application should perform the following procedure before calling DBCHCL for any of these
functions:
•
RunStartUp
•
Initiate with Protocol-Function
•
Command
•
Initiate Request
1
Set Change Options to ‘Y‘.
2
Change the value for Keep Response as follows.
If the spool file is to...
Then change the value for
Keep Response to...
be retained by the Teradata Database even after the last parcel of
the Teradata SQL response has been sent to the client
Y
be discarded by the Teradata Database after the last parcel of the
Teradata SQL response has been sent
N
retain both the SQL response parcels and their original row
locations so that the client may reposition the response directly to
particular rows using Positioning-action
P
Use mnemonics for the codes. Mnemonics are provided in the language definition file for the
DBCAREA.
A call to DBCHCL for the Rewind function fails if Keep Response was N on the original
request. Keep Response is not directly tied to Open Requests. Even if Keep Response is set to
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
103
Chapter 3: DBCAREA
Language Conformance
N and the last parcel has been sent so that the Teradata Database discards the spool file, Open
Requests is not decremented.
Applications must still call DBCHCL for the End Request function in order to decrement
Open Requests and formally close the request, regardless of the setting of Keep Response, no
matter how much of the response an application has been sent, and regardless of the actual
state of the spool file.
Language Conformance
Language Conformance is a one-byte field that specifies whether SQL requests are to be
checked for conformance with a particular standard. When Language-conformance is
specified, Connect-type 'C' must also be specified.
In this language...
The variable name for Language Conformance is...
COBOL
DBCAREA-CONFORMANCE
PL/I
LANG_CONFORMANCE
C
lang_conformance
IBM Assembler
DBCNILCS
This routine...
Does this for Language Conformance...
DBCHINI
writes
DBCHCL
reads (CON)
Language Conformance is
used by...
To...
applications
write.
DBCHINI initializes Language Conformance to the default value provided for it in the
HSHSPB for your site. When the value for Language Conformance is not appropriate for an
application, perform the following procedure before calling DBCHCL for the connect
function.
104
1
Set Change Options to ‘Y‘.
2
Change the value for Language Conformance as follows.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Language Id
If conformance checking is to be done at this level...
Then change the
value for Language
Conformance to...
None
N
This is always acceptable.
Entry-level ANSI (FIPS 127-2).
2
If the Teradata Database does not support language conformance, it
rejects this selection.
Intermediate-level ANSI (FIPS 127-3).
3
If the Teradata Database does not support language conformance, it
rejects this selection.
Note: While the client software supports this conformance level, the
release 2 database software does not.
Language Id
Language Id is a four-byte field that specifies the language to be used for all CLIv2 error
messages returned in the Message Text DBCAREA field, and that were associated with the
session being connected. The value specifies a two-character Language Id.
If a language is commonly used in several countries, the Country Id can be used to select
messages that are unique to that country. The Language Id is defined by the ISO 639 standard.
The entire value is in EBCDIC, and both lowercase and uppercase characters are permitted.
In this language...
The variable name for Language Id is...
COBOL
DBCNILID
PL/I
DBCNILID
C
dbcniLid (case is significant)
IBM Assembler
DBCNILID
This routine...
Does this for Language Id. . .
DBCHINI
writes
DBCHCL
reads (CON)
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
105
Chapter 3: DBCAREA
Language Id
Language Id is used by...
To...
applications
write
DBCHINI initializes the Language Id to the default value provided in the HSHSPB being
used. If the default value for Language Id is not appropriate for an application, perform the
following procedure before calling DBCHCL for the connect function:
106
1
Set Change Options to ‘Y‘.
2
Change the value for Language Id as follows:
If the language is...
Then set Language Id to...
Arabic
AR
Danish
DA
German
DE
Greek
EL
English
EN
Spanish
ES
Finnish
FI
French
FR
Hebrew
IW
Icelandic
IS
Italian
IT
Japanese
JA
Korean
KO
Dutch
NL
Norwegian
NO
Portuguese
PT
Romansh/Grishun
RM
Russian
RU
Swedish
SV
Thai
TH
Turkish
TR
Chinese
ZH
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Level
Messages are distributed in United States English (Language Id 'EN', optional Country Id
'US') only, although customers or Teradata Corporation in various countries can provide
additional languages.
The mechanism by which the CLIv2 error messages may be defined in other languages is
described in Chapter 13: “User-Defined Character Sets.”
If a message must be returned, but messages are not available in the specified language, then
the message number with fixed message text of '(REQUIRED MESSAGE TABLE IS NOT
AVAILABLE)' in United States English will be returned. For example, the message 'CLI0538
REQUEST REJECTED BY DELAY' would be presented as:
CLI0538 (REQUIRED MESSAGE TABLE IS NOT AVAILABLE)
Level
Level is a one-byte field that indicates the format of the DBCAREA:
•
Binary '0' indicates the initial level consisting of 384 bytes.
•
Binary '1': Indicates the current level consisting of 640 bytes.
Note: Level is returned by CLIv2, it is not set by applications.
In this language...
The variable name for Level is...
COBOL
DBCLEVEL
PL/I
DBCLEVEL
C
dbcLevel
IBM Assembler
DBCLEVEL
This routine...
Does this for Level...
DBCHINI
writes
Level is used by...
To...
application
reads
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
107
Chapter 3: DBCAREA
Locate Mode
Locate Mode
Locate Mode is a one-byte field that specifies where the data returned is to be made available.
In this language...
The variable name for Locate Mode is...
COBOL
DBCAREA-LOC-MODE
PL/I
LOC_MODE
C
loc_mode
IBM Assembler
DBOFLOC
This routine...
Does this for Locate Mode...
DBCHINI
writes
DBCHCL
reads (CON; RSUP; IRQ; CMD; CRQ)
Locate Mode is used by...
To...
applications
write.
Locate Mode is initialized by DBCHINI to the default value provided for Locate Mode in the
HSHSPB. When the value for Locate Mode is not appropriate for an application, perform the
following procedure before calling DBCHCL for Connect, RunStartUp, Command, or Initiate
Request functions:
1
Set Change Options to ‘Y‘.
2
Change the value for Locate Mode as follows.
If the data returned is to be...
Then change the value for Locate Mode to...
made available in the response buffer
Y
made available in the move area
N
Use mnemonics for the codes. Mnemonics are provided in the language definition file for the
DBCAREA.
Within this manual, the following conventions apply:
108
•
Locate Mode of Y is known as Locate Mode.
•
Locate Mode of N with Parcel Mode Fetch of Y is known as Move Mode.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Logon Length
Locate Mode operates in conjunction with Parcel Mode Fetch. The setting of Locate Mode
affects the use of Fetch Maximum Data Length, Fetch Data Pointer, Fetch Returned Data
Length, and Fetch Parcel Flavor.
Note: Variable Length Fetch and Locate Mode can be set to 'Y' at the same time.
When using Locate mode, applications should not change the data whose pointer is returned.
This data resides in the response buffer allocated and controlled by CLIv2 and altering it may
impact CLIv2 in unpredictable ways. Locate mode is provided as a performance option for
applications that need only inspect the data. Performance is improved by not copying the data
to the application's storage. But if the data must be modified, Locate mode should not be
used.
Logon Length
Logon Length is a four-byte field that is the length in bytes of the logon string.
In this language...
The variable name for Logon Length is...
COBOL
DBCAREA-LOGON-LEN
PL/I
LOGON_LEN
C
logon_len
IBM Assembler
DBCNILSL
This routine...
Does this for Logon Length...
DBCHINI
writes
DBCHCL
reads (CON)
Logon Length is used by...
To...
applications
write
The value of Logon Length must be positive, with an absolute maximum value (after removal
of any TDP identifier and delimiting slash) of one of the following:
•
32763, if Maximum Parcel is set to O
•
65531, if Maximum Parcel is set to H. Note however, that the actual maximum value is
based on the size of the longest logon string allowed, with that string encoded with the
character set that uses the most number of bytes per character. Currently, the maximum
value is 278 bytes.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
109
Chapter 3: DBCAREA
Logon Pointer
Calls to DBCHCL
Before a call to DBCHCL for the Connect function, applications set Variable Length Request
either to Y or N, with the following results:
When Variable
Length
Request is set
to...
Then...
Y
the Logon Length field is ignored and the Logon Pointer must point to the
two-byte area containing the length of the logon string, which is followed by the
actual logon string.
N
the application must supply the length information separately from the logon
string, in Logon Length.
For more information, see “Variable Length Request” on page 198.
Logon Pointer
Logon Pointer is a four-byte field that specifies the address of the logon string for a session.
110
In this language...
The variable name for Logon Pointer is...
COBOL
DBCAREA-LOGON-PTR
PL/I
LOGON_PTR
C
logon_ptr
IBM Assembler
DBCNILSP
This routine...
Does this for Logon Pointer...
DBCHINI
writes
DBCHCL
reads (CON)
Logon Pointer is used by...
To...
applications
write.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Logon Pointer
Calls to DBCHCL
Before calling DBCHCL for the Connect function, applications can build a logon string and
provide its address in Logon Pointer. A logon string has the following format:
[tdpid/]userid, password[, ‘acctid‘]
where:
Syntax element...
Is the ...
tdpid
TDP id, which is the name of the TDP to be used to reach the Teradata
Database.
Under z/OS, the tdpid is the subsystem name of the target TDP subsystem.
Unicode Delimited identifier (U&"..."), with or without Unicode escape
sequences (/nnnn), or the Teradata "..."XN notation may not be used for the
TDPid.
If only one character is specified, it is assumed to be an abbreviation for a four
character TDP identifier that begins with TDP, and the omitted characters are
supplied. Note that such abbreviation is deprecated, and its use is not
recommended.
userid
The userid on the corresponding Teradata Database.
The maximum length of userid is 30 characters and is not case-specific.
Each character may require 1, 2, or 3 bytes, depending on the character set
used. Therefore, up to 90 bytes may be necessary to specify the field. The
userid may be enclosed in apostrophes, each of which requires 1 byte (2 bytes
if UTF16). Unicode Delimited identifier (U&"..."), with or without Unicode
escape sequences (/nnnn), or the Teradata "..."XN notation may not be used
for the TDPid. Therefore, the maximum length is 94 bytes.
Note that SQL terminal symbols (such as apostrophes) must always come
from the shortest repertoire, that is, single-byte, 2 for UTF16, unaccented
Latin characters, except for UTF16. Terminal symbols are never 3 bytes.
The dollar sign ($) is allowed anywhere in the userid.
password
The password on the corresponding Teradata Database.
At sites with an exit routine to add a password, the password may not be
required.
The maximum length of a password is 30 characters.
Each character may require 1, 2, or 3 bytes, depending on the character set
used. Therefore, up to 90 bytes may be necessary to specify the field. The
password may be enclosed in quotation marks, each of which requires 1 byte
(2 bytes if UTF16). Unicode Delimited identifier (U&"..."), with or without
Unicode escape sequences (/nnnn), or the Teradata "..."XN notation may not
be used for the TDPid. Therefore, the maximum length is 92 bytes.
Note that SQL terminal symbols (such as quotation marks) must always come
from the shortest repertoire; that is, single-byte unaccented Latin characters,
except for UTF16. Terminal symbols are never 3 bytes.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
111
Chapter 3: DBCAREA
Logon Pointer
Syntax element...
Is the ...
‘acctid‘
account id to be charged on the mainframe client.
The acctid may be omitted. If acctid is present, it may consist of as many as 30
characters, and it must be enclosed in apostrophes.
Each character may consist of 1, 2, or 3 bytes, depending on the character set
used.
If the acctid includes an apostrophe, that apostrophe must be preceded by an
apostrophe. Therefore, if the account string consists of 30 apostrophes, and is
encoded in UTF16 (2-byte terminal symbols), 124 bytes are necessary to
specify the field. Unicode Delimited identifier (U&"..."), with or without
Unicode escape sequences (\nnnn), or the Teradata "..."XN notation may not
be used for the TDPid.
The userid, password, and account name each consists of characters from the session
character set.
Any TDPid and delimiting slash consist of fixed-length characters from the session character
set. If the character set supports multi-byte characters, they cannot be used for this
information.
Multibyte Character Support
The following specifications apply to multibyte character sets.
Session Character Set
Specification
HANGULEBCDIC933_1II,
KANJIEBCDIC5026_0I,
KANJIEBCDIC5035_0I,
KATAKANAEBCDIC,
SCHEBCDIC935_2IJ, or
TCHEBCDIC937_3IB
Double-byte characters may be included by preceding each
contiguous group of them with the Shift-out control byte,
(X'0E'), and following this group with the Shift-in control byte,
(X'0F').
KANJIEUC_0U
Each character requires one or two bytes, each possibly preceded
by a Single-shift-2, X'8E'), or Single-shift-3, (X'8F'), control byte.
So each character requires a total of between one and three bytes.
Any TDP identifier and all delimiters (slash, commas, blanks,
quotation marks, apostrophes) must be specified as single-byte
characters.
Any TDP identifier and all delimiters (slash, commas, blanks,
quotation marks, apostrophes) must be specified as single-byte
characters.
HANGUL949_7R0,
HANGULKSC5601_2R4,
KANJI932_1S0,
KANJISJIS_0S,
SCHGB2312_1T0,
SCHINESE936_6R0,
TCHBIG5_1R0, or
TCHINESE950_8R0
112
Each character requires one or two bytes. Any TDP identifier and
all delimiters (slash, commas, blanks, quotation marks,
apostrophes) must be specified as single-byte characters.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Max-decimal-returned
Session Character Set
Specification
UTF8
Each character requires between one and three bytes. Any TDP
identifier and all delimiters (slash, commas, blanks, quotation
marks, apostrophes) must be specified as single-byte characters.
UTF16
Each character requires two bytes. Any TDP identifier and all
delimiters (slash, comma, blanks, quotation marks, apostrophes)
must be from the basic repertoire, that is, unaccented Latin
characters.
Logon Strings
Do not end the logon string with a semicolon.
A TDP exit routine that adds or modifies the logon string might have been created during
installation. If so, all or part of the logon string in the DBCAREA might be optional. For more
details, check with your system administrator.
Value of the Variable Length
Request.
Purpose of the Logon Pointer
N
Points to the beginning of the logon string.
Y
Points to the two-byte length field immediately preceding the logon
string.
User-defined or invalid character set names are treated as EBCDIC to parse the logon string
for the TDPid. For more information, see “Character Sets” on page 50 and “Character Set
Pointer” on page 78.
Max-decimal-returned
Max-decimal-returned specifies the maximum precision of DECIMAL values in a response
mode. The option is ignored for Field Response-mode. Max-decimal-returned exists only
when DBCHINI had been called for a DBCAREA with Total-length set to at least 640 (that is,
the returned DBCAREA Level value is at least 1). For a smaller DBCAREA, Max-decimalreturned is ignored.
Language
Returned Max-decimal-returned Value
COBOL
MAX-DECIMAL-RETURNED
PL/I
MAX_DECIMAL_RETURNED
C
maxDecimalReturned
IBM Assembler
DBRIMDR
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
113
Chapter 3: DBCAREA
Maximum Parcel
Routine.
Action for Max-decimal-returned
DBCHINI
writes
DBCHCL
reads (RSUP; IRQ; IWPF)
Max-decimal-returned is used by...
To...
applications
write.
Teradata Database rejects any value greater than the decimal precision value obtained using
the DBCHQE SQL-limits query. If Max-decimal-returned is omitted or specified as zero, the
client default of 18 is assumed, unless the HSHSPB MDR specification is used to specify a
different default.
Maximum Parcel
Maximum Parcel is a one-byte field that specifies whether the maximum parcel length is
32767 or the maximum size supported by the server, up to 2,147,483,647 bytes.
114
In this language...
The variable name for Maximum Parcel is...
COBOL
MAXIMUM-PARCEL
PL/I
MAXIMUM_PARCEL
C
maximum-parcel
IBM Assembler
DBCIMP
This routine...
Takes the action for Maximum Parcel...
DBCHINI
writes
DBCHCL
reads (CON; RSUP; IRQ; IWPF; CMD; CRQ)
Maximum Parcel is used by...
To...
applications
write.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Mechanism-data-encoding
Maximum Parcel is initialized to the default value provided for Maximum Parcel in the site‘s
HSHSPB. If the value is not appropriate for an application, the application can, before calling
DBCHCL for Connect, change the values as follows:
1
Set Change Options to 'Y'.
2
Change the value for Maximum Parcel as follows:
If...
Then change the value
for Maximum Parcel
to...
the original limit of 32767 is the maximum size of one parcel
O
if the higher limit of 2,147,483,647 bytes is the maximum size of one
parcel
H
Note: For new applications, Maximum-parcel=H should always be specified.
Use mnemonics for the codes. Mnemonics are provided in the language definition file for the
DBCAREA.
A Maximum-parcel value of 'H' is required for a Response-buffer-length greater than 32767.
If the server requires a response buffer larger than 65535 bytes but Maximum-parcel is not set
to H, then an Error parcel with error code 3177 will be returned.
Mechanism-data-encoding
If additional data is required by the specified Mechanism-name, Mechanism-data-encoding
optionally specifies the character set of the area addressed by Mechanism-data-ptr. If
Mechanism-data-ptr is not specified, this option is validated but not otherwise processed.
While the data may be encoded in any supported session character set, if overridden by this
option, only UTF8 and UTF16 can be specified.
Mechanism-data-encoding exists only when DBCHINI had been called for a DBCAREA with
Total-length set to at least 640 (that is, the returned DBCAREA Level value is at least 1). For a
smaller DBCAREA, Mechanism-data-encoding is ignored.
Note: Logon mechanisms are currently not supported for a channel-connected system.
In this language...
The variable name for Mechanism-data-encoding is...
COBOL
MECHANISM-DATA-ENCODING
PL/I
MECHANISM_DATA_ENCODING
C
mechanismDataEncoding
IBM Assembler
DBCNIME
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
115
Chapter 3: DBCAREA
Mechanism-data-len
This routine...
Does this for Mechanism-data-encoding...
DBCHINI
writes
DBCHCL
reads (CON)
Mechanism-data-encoding is
used by...
To...
applications
write
One of the following numeric values can be set before establishing a connection:
Value Used
Mechanism-data-encoding Settings and Mneumonics
Session character set default
0
DBCNIMES ('DBC_MechCodingSession' for C,
SESSION for COBOL, DBC_MECH_CODING_SESSION for PL/I)
UTF8
3
DBCNIMET ('DBC_MechCodingUTF8' for C,
UTF8 for COBOL, DBC_MECH_CODING_UTF8 for PL/I)
Also, when UTF8 is specified, each character in Mechanismdata-ptr requires between one and three bytes.
UTF16
4
DBCNIME2 ('DBC_MechCodingUTF16' for C,
UTF16 for COBOL, DBC_MECH_CODING_UTF16 for PL/I)
Also, when UTF16 is specified, each character in Mechanismdata-ptr requires two bytes.
Mechanism-data-len
If additional data is required by the specified Mechanism-name, Mechanism-data-length
specifies the length, in bytes, of the area addressed by Logon-mechanism-data-pointer. If a
Mechanism-name is not specified, the value will be ignored.
Mechanism-data-len exists only when DBCHINI had been called for a DBCAREA with Totallength set to at least 640 (that is, the returned DBCAREA Level value is at least 1). For a
smaller DBCAREA, Mechanism-data-len is ignored.
Note: Logon mechanisms are currently not supported for a channel-connected system.
116
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Mechanism-data-ptr
In this language...
The variable name for Mechanism-data-length is...
COBOL
MECHANISM-DATA-LEN
PL/I
MECHANISM_DATA_LEN
C
mechanismDataLen
IBM Assembler
DBCNIMDL
This routine...
Does this for Mechanism-data-length...
DBCHINI
writes
DBCHCL
reads (CON)
Mechanism-data-length is
used by...
To...
applications
write
The value must be positive with a maximum value of:
•
32763 if the Maximum-parcel option is set to O, or
•
65531 if the Maximum-parcel option is set to H.
This field is ignored if Variable-length-request is set to Y, in which case
Logon-mechanism-data-pointer addresses a two-byte area containing the length of the data,
followed by the data itself.
Mechanism-data-ptr
If additional data is required by the specified Mechanism-name, Mechanism-data-ptr
addresses that data, specified in the character set specified by Mechanism-data-encoding. If
Variable-length-request is set to 'N', the data itself is addressed and its length is specified by
Mechanism-data-len. If Variable-length-request is set to 'Y', the data follows a two-byte field
that contains the length of the data (Mechanism-data-len is ignored). If a Mechanism-name is
not specified, the value will be ignored.
Mechanism-data-ptr exists only when DBCHINI had been called for a DBCAREA with Totallength set to at least 640 (that is, the returned DBCAREA Level value is at least 1). For a
smaller DBCAREA, Mechanism-data-ptr is ignored.
Note: Logon mechanisms are currently not supported for a channel-connected system.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
117
Chapter 3: DBCAREA
Mechanism-name
In this language...
The variable name for Mechanism-data-ptr is...
COBOL
MECHANISM-DATA-PTR
PL/I
MECHANISM_DATA_PTR
C
mechanismDataPtr
IBM Assembler
DBCNIMDP
This routine...
Does this for Mechanism-data-ptr...
DBCHINI
writes
DBCHCL
reads (CON)
Mechanism-data-ptr is used
by...
To...
applications
write
Mechanism-name
Mechanism-name specifies the name (in case-independent EBCDIC, left-justified, padded
with spaces) of the logon mechanism to authenticate the connection. A name is ignored if it
consists solely of spaces or binary zeroes. If required, additional data for the mechanism can
be supplied using the Mechanism-data-ptr and Logon-mechanism-data-length. If the
specified mechanism is not supported, the request will be rejected.
Mechanism-name exists only when DBCHINI had been called for a DBCAREA with Totallength set to at least 640 (that is, the returned DBCAREA Level value is at least 1). For a
smaller DBCAREA, Mechanism-name is ignored.
Note: Logon mechanisms are currently not supported for a channel-connected system.
118
In this language...
The variable name for Mechanism-name is...
COBOL
MECHANISM-NAME
PL/I
MECHANISM_NAME
C
mechanismName
IBM Assembler
DBCNIMNM
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Message Area Length
This routine...
Does this for Mechanism-name...
DBCHINI
writes
DBCHCL
reads (CON)
Mechanism-name is used
by...
To...
applications
write
Upon return from the Connect function, Mechanism-name contains the mechanism name
used, monocased as necessary.
Message Area Length
Message Area Length is a two-byte field that is the length of the area pointed to by the Message
Area Pointer field. The value is equivalent to the maximum length of a message that can be
returned in that area. CLIv2 does not alter this value, so once set, it remains unless changed by
the application.
In this language...
The variable name for Message Area Length is...
COBOL
DBCIMSGM
PL/I
DBCIMSGM
C
dbciMsgM
IBM Assembler
DBCIMSGM
This routine...
Does this for Message Area Length...
DBCHINI
writes
DBCHCL
reads
Message Area Length is used
by...
To...
applications
write
If the Message Area Pointer is not specified, this value is ignored.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
119
Chapter 3: DBCAREA
Message Area Pointer
Message Area Pointer
Message Area Pointer is a four-byte field that specifies the address of an area into which any
error message will be placed when a non-zero return code occurs. The Message Area Length
field specifies the length of the addressed area. CLIv2 does not alter this value, so once set, it
remains unless changed by an application.
In this language...
The variable name for Message Area Pointer is...
COBOL
DBCIMSGP
PL/I
DBCIMSGP
C
dbciIMsgP
IBM Assembler
DBCIMSGP
This routine...
Does this for Message Area Pointer...
DBCHINI
writes
DBCHCL
reads
Message Area Pointer is used
by...
To...
applications
writes
An error message is returned when a CLIv2 routine that uses the DBCAREA ends with a nonzero return code. The message is contained either in the Message Text field within the
DBCAREA or in the area addressed by Message Area Pointer. A message is never returned in
both places. If Message Area Pointer is not specified, the Message Text field contains the
message and Message Text Length returns the length of the message. If Message Area Pointer
is specified, the area addressed contains the message and Message Length returns the length of
the message.
If an error occurs while building the message, the Message Return Code field contains a CLIv2
return code. When this code is not zero, the text of the message may or may not be usable,
depending on the nature of the error.
The character set used to construct the message is indicated by Message Charset Used. The
session character set is always used if it is known, but if the error occurred before this
character set is known, the default CLIv2 character set is used.
120
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Message Charset Used
When a CLIv2 routine that uses the DBCAREA ends with a zero return code, any text from a
previous error is overwritten with spaces in the character set indicated by Message Charset
Used, and the length of the message is zeroed.
Message Charset Used
Message Charset Used is a one-byte field that indicates which character set was used to
construct the message. The value is returned by CLIv2; it is not set by an application.
In this language...
The variable name for Message Charset Used is...
COBOL
DBCOMSGC
PL/I
DBCOMSGC
C
dbcoMsgC
IBM Assembler
DBCOMSGC
This routine...
Does this for Message Charset Used...
DBCHINI
writes
DBCHCL
writes
Message Charset Used is used
by...
To...
applications
read
An EBCDIC 'S' indicates that the session character set when the request was issued was used
while a 'D' indicates that the default CLIv2 character set (EBCDIC) was used. The session
character set is always used if it is known, but if an error occurs before this character set is
known, the default CLIv2 character set is used.
Message Length
Message Length is the length in bytes of the message returned in the area addressed by
Message Area Pointer.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
121
Chapter 3: DBCAREA
Message Return Code
In this language...
The variable name for Message Length is...
COBOL
DBCOMSGL
PL/I
DBCOMSGL
C
dbcoMsgL
IBM Assembler
DBCOMSGL
This routine...
Does this for Message Length. . .
DBCHINI
writes
DBCHCL
writes
Message Length is used by...
To...
applications
read
If the Message Area Pointer is not specified, this value is not returned.
Message Return Code
Message Return Code is a two-byte field that is the CLIv2 return code for any error that
occurred while constructing the message. If no error occurs, binary zeroes are returned.
122
In this language...
The variable name for Message Return Code is...
COBOL
DBCOMSGR
PL/I
DBCOMSGR
C
dbcoMsgR
IBM Assembler
DBCOMSGR
This routine...
Does this for Message Return Code...
DBCHINI
writes
DBCHCL
writes
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Message Text Length
Message Return Code is used
by...
To...
applications
read
Message Text Length
Message Text Length is a two-byte field that is the length in bytes of a message in Message
Text.
In this language...
The variable name for Message Text Length is...
COBOL
DBCAREA-MSG-LEN
PL/I
MSG_LEN
C
msg_len
IBM Assembler
DBCMSGL
This routine...
Does this for Message Text Length...
DBCHINI
writes
DBCHCL
writes
Message Text Length is used
by...
To...
applications
read
If the Message Area Pointer is specified, this value is not returned.
Message Text
Message Text is a 76-byte field that is the text of the message indicated by Return Code. The
language of the text is specified by the Language Id and the Country Id options
In this language...
The variable name for Message Text is...
COBOL
DBCAREA-MSG-TEXT
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
123
Chapter 3: DBCAREA
Open Requests
In this language...
The variable name for Message Text is...
PL/I
MSG_TEXT
C
msg_text
IBM Assembler
DBCMSG
This routine...
Does this for Message Text...
DBCHINI
writes
DBCHCL
writes
Message Text is used by...
To...
applications
read
An error message is returned when a CLIv2 routine that uses the DBCAREA ends with a nonzero return code. The message is contained either in the Message Text field within the
DBCAREA or in the area addressed by Message Area Pointer. A message is never returned in
both places. If Message Area Pointer is not specified, the Message Text field contains the
message and Message Text Length returns the length of the message. If Message Area Pointer
is specified, the area addressed contains the message and Message Length returns the length of
the message.
If an error occurs while building the message, the Message Return Code field contains a CLIv2
return code. When this code is not zero, the text of the message may or may not be usable,
depending on the nature of the error.
The character set used to construct the message is indicated by Message Charset Used. The
session character set is always used if it is known, but if the error occurred before this
character set is known, the default CLIv2 character set is used.
If the character set requires more than one byte per character, it may exceed the size of
Message Text. Message Area Pointer may be used to provide a larger area for the message.
When a CLIv2 routine that uses the DBCAREA ends with a zero return code, any text from a
previous error is overwritten with spaces in the character set indicated by Message Charset
Used, and the length of the message is zeroed.
Open Requests
Open Requests is a four-byte field that specifies the DBCHCL count of the open requests in a
session.
124
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Open Requests
In this language...
The variable name for Open Requests is...
COBOL
DBCAREA-OPEN-REQS
PL/I
OPEN_REQS
C
open_reqs
IBM Assembler
DBROREQC
This routine...
Does this for Open Requests...
DBCHINI
writes.
DBCHCL
writes (CON; RSUP; IRQ; ERQ; IWPF; CMD)
Open Requests is used by...
To...
applications
read.
Open Requests Calculations
DBCHCL calculates the value of Open Requests as follows:
Open Request is the number of calls to DBCHCL for Connect function
+
the number of calls to DBCHCL for RunStartUp function
+
the number of calls to DBCHCL for Initiate Request function
+
the number of calls to DBCHCL for Initiate with Protocol-Function function
+
the number of calls to DBCHCL for Command function
–
the number of calls to DBCHCL for End Request function
Note: The calculation does not keep track of End Request parcels as received by the client nor
does it keep track of the return code from the call to DBCHCL.
The application must explicitly close a request with an End Request function in order to have
Open Requests decremented.
Miscellaneous Notes
Open Requests is a count of requests that have not been ended. These requests do not
necessarily still have spool files.
As long as the application keeps Open Requests less than or equal to 16, the number of spool
files on the Teradata Database will be less than or equal to 16.
The Teradata Database allows no more than 16 spool files at one time per session.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
125
Chapter 3: DBCAREA
Output CLIv2 Connection Id
For optimal performance, the application should operate so that Open Requests is no more
than 16.
You should program your applications to close requests explicitly with a call to DBCHCL for
the End Request function as soon as the response generated by the request is no longer
needed.
DBCHCL updates Open Requests in the DBCAREA as soon as DBCHCL is called for a
request-generating function.
Open Requests is available after the application regains control from DBCHCL, even for a
connect operation.
Output CLIv2 Connection Id
Output TDP Path is an eight byte field that specifies the route used to send session data to and
from the Teradata Database. On channel-attached systems, this is the TDPid. This
information is also available using the Database-access-path DBCHQE query.
In this language...
The variable name for Output CLIv2 Connection Id is...
COBOL
DBCAREA-O-SESS-ID
PL/I
O_SESS_ID
C
o_sess_id
IBM Assembler
DBCOCONN
This routine...
Does this for Output CLIv2 Connection Id...
DBCHINI
writes
DBCHCL
writes (CON)
Output CLIv2 Connection Id is
used by...
To...
applications
read
After the application regains control from a call to DBCHCL for the Connect function, the
logical session id is available in the DBCAREA in Output CLIv2 Connection Id.
Before using the DBCAREA again to call DBCHCL for the session, the application must copy
the value to Input CLIv2 Connection Id.
Compare with “Output TDP Session Id” on page 129.
126
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Output CLIv2 Request Id
Note that both the TDP and CLIv2 have a number for each session, and that the two numbers
are not identical.
Output CLIv2 Request Id
Output CLIv2 Request Id is a four byte field that is the CLIv2 logical identifier for a given
request on the Teradata Database.
In this language...
The variable name for Output CLIv2 Request Id is...
COBOL
DBCAREA-O-REQ-ID
PL/I
O_REQ_ID
C
o_req_id
IBM Assembler
DBCOREQN
This routine...
Does this for Output CLIv2 Request Id...
DBCHINI
writes
DBCHCL
writes (CON; RSUP; IRQ; IWPF; CMD)
Output CLIv2 Request Id is
used by...
To...
applications
read
When the application regains control from a call to DBCHCL for any of the following
functions, the logical request is available in the DBCAREA in Output CLIv2 Request id.
•
Connect
•
RunStartUp
•
Command
•
Initiate with Protocol-Function
•
Initiate Request
Before using the DBCAREA again to call DBCHCL for an operation related to that request,
the application must copy the value to Input CLIv2 Request Id.
Compare with “TDP Request Number” on page 169.
Note that CLIv2 and the TDP have a number for each request and that the numbers are not
identical.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
127
Chapter 3: DBCAREA
Output Host Id
Output Host Id
Output Host Id is a two-byte field that specifies the host id for a database configuration of
related resources. It is provided for diagnostic purposes, audit logs, and so forth.
In this language...
The variable name for Output Host Id is...
COBOL
DBCAREA-O-HOST-ID
PL/I
O_HOST_ID
C
o_host_id
IBM Assembler
DBCOSILH
This routine...
Does this for Output Host Id...
DBCHINI
writes
DBCHCL
writes (FET) associated with connect operation
Output Host Id is used by...
To...
applications
read.
Output Host Id is available in the DBCAREA when the application regains control (with
return code zero) from calling DBCHCL for the first Fetch function associated with the
connect operation.
Output Host Id is a two-byte (16-bit) field.
The ten least significant bits are the host number, which is in unsigned binary.
Output TDP Path
Output TDP Path is an eight byte field that specifies the route used to send session data to and
from the Teradata Database.
It is provided for diagnostic purposes, audit logs, and so forth.
128
In this language...
The variable name for Output TDP Path is...
COBOL
DBCAREA-O-DBCPATH
PL/I
O_DBCPATH
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Output TDP Session Id
In this language...
The variable name for Output TDP Path is...
C
o_dbcpath
IBM Assembler
DBCOSID
This routine...
Does this for Output TDP Path...
DBCHINI
writes
DBCHCL
writes (FET) associated with connect operation
Output TDP Path is used by...
To...
applications
read
After regaining control from a call to DBCHCL for the Connect function, the application can
obtain the route used from Output TDP Path.
Output TDP Path contains the name of the TDP used for the session, the TDP-assigned
session number, and your Teradata Database’s host id.
Output TDP Path is available in the DBCAREA when the application regains control, with
return code zero, from calling DBCHCL for the first Fetch function that is associated with the
connect operation.
Output TDP Session Id
Output TDP Session Id is a four byte field that is the actual, not logical, identifier assigned to
the session by TDP.
It is provided for diagnostic purposes, audit logs, and so on.
In this language...
The variable name for Output TDP Session Id is...
COBOL
DBCAREA-O-DBC-SESS-ID
PL/I
O_DBC_SESS_ID
C
o_dbc_sess_id
IBM Assembler
DBCOSISN
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
129
Chapter 3: DBCAREA
Parcel Mode Fetch
This routine...
Does this for Output TDP Session Id...
DBCHINI
writes
DBCHCL
writes (FET) associated with connect operation
Output TDP Session Id is used
by...
To...
applications
read
Output TDP Session Id is available in the DBCAREA after the application regains control
from a call to DBCHCL for the first Fetch function associated with the connect.
Compare with “Output CLIv2 Connection Id” on page 126.
Parcel Mode Fetch
Parcel Mode Fetch is a one byte field that specifies whether fetches are to provide the next
parcel or the next buffer full of returned data.
In this language...
The variable name for Parcel Mode Fetch is...
COBOL
DBCAREA-PARCEL-MODE
PL/I
PARCEL_MODE
C
parcel_mode
IBM Assembler
DBOBTPM
This routine...
Does this for Parcel Mode Fetch...
DBCHINI
writes.
DBCHCL
reads (CON; RSUP; IRQ; IWPF; CMD; CRQ)
Parcel Mode Fetch is used by...
To...
applications
write
Buffer Mode is not allowed with either Variable Length Fetch or Move Mode (that is, Move
Mode can only move one parcel at a time).
130
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Period-as-Struct
If buffer Mode is in effect, each fetch results in a new buffer full of parcels. It is assumed that
the application has processed the previous buffer full of parcels. Whether any of the parcels
have the alternate header depends upon the Request-mode and Request-parcel-format
options. To prevent an unexpected alternate parcel header in a returned buffer, CLIv2 will not
use the alternate header if Request-mode=P and Parcel-mode-fetch=N are both specified.
Once the application is adjusted to support the alternate header in a response buffer,
Request-parcel-format=A may be specified to allow CLIv2 to use the alternate header if
possible.
Parcel Mode Fetch is initialized by DBCHINI to the default value provided for Parcel Mode in
the HSHSPB. If the value provided is not appropriate for the application, the program may set
Change Options to Y and change Parcel Mode Fetch to either of the following:
If...
Then set Parcel Mode to...
the application wants each fetch to provide the next parcel
Y
the application wants each fetch to provide the next buffer full of
parcels
N
before calling DBCHCL for any of these functions:
•
Connect
•
RunStartUp
•
Command
•
Initiate with Protocol-Function
•
Initiate Request
Use mnemonics for the codes. Mnemonics are provided in the language definition file for the
DBCAREA.
Period-as-Struct
Period-as-Struct is a one byte EBCDIC field that indicates whether to treat Period data types
as Structured UDTs in honoring the Transforms-off option and return information about the
constituent attributes.
In this language...
The variable name for Period-as-Struct is...
COBOL
PERIOD-AS-STRUCT
PL/I
PERIOD-AS-STRUCT
C
PERIOD-AS-STRUCT
IBM Assembler
DBRIPAS
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
131
Chapter 3: DBCAREA
Positioning-action
This routine...
Does this for Period-as-Struct...
DBCHINI
writes.
DBCHCL
reads (RSUP; IRQ; IWPF)
Period-as-Struct is used by...
To...
applications
write.
One of the following values may be set before initiating a request: 'N' (DBRIPASN for
Assembler, DBC_periodAsStructNo for C, DBC-NO for COBOL,
DBC_PERIOD_AS_STRUCT_NO for PL/I), indicates that Period data types are treated as
simple data types. 'Y' (DBRIPASY for Assembler, DBC_periodAsStructYes for C, DBC-YES
for COBOL, DBC_PERIOD_AS_STRUCT_YES for PL/I) indicates that Period data types are
treated as Structured UDTs in honoring the Transforms-off option.
The default setting is "N".
Positioning-action
Positioning-action specifies the position in the response from which the Fetch is to be
performed.
In this language...
The variable name for Positioning-action is...
COBOL
DBFIPACT
PL/I
DBFIPACT
C
dbfiPAct
IBM Assembler
DBFIPACT
This routine...
Does this for Positioning-action...
DBCHINI
writes.
DBCHCL
reads.
FET
132
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Positioning-statement-number
Positioning-action is used by...
To...
applications
write.
One of the following values may be set before calling the Fetch function:
To...
Set Positioning-action
fetch the next parcel (default).
U
fetch the first parcel in the row number specified by Positioning-value for the
statement specified by Positioning-statement-number.
T
fetch bytes in the Binary Large Object (BLOB) beginning at the byte offset
specified by Positioning-value for the statement specified by Positioningstatement-number. This may be done only if a single BLOB was selected
using a locator.
2
fetch characters in the Character Large Object (CLOB), beginning at the
character offset specified by Positioning-value for the statement specified by
Positioning-statement-number. This may be done only if a single CLOB was
selected using a locator.
3
Use mnemonics for the codes. Mnemonics are provided in the language definition file for the
DBCAREA.
Use of this option requires that Keep-response=P be specified when initiating the request.
Use of this setting does not require use of Change-option. That is, Positioning-action is
honored whatever the setting of Change-option.
Positioning-statement-number
Positioning-statement-number specifies the statement number from which the Fetch is to be
performed when Positioning-action indicates other than Next-parcel.
A request can consist of multiple statements, each of which contributes to the response. The
first statement is numbered one and any subsequent statements are assigned subsequent
ascending integers.
Successful response parcels for each statement begin with either a Success, OK, or
ResultSummary parcel and end with an EndStatement parcel, both of which contain the
statement number. For unsuccessful statements, the Error or Failure parcel contains the
statement number.
In this language...
The variable name for Positioning-statement-number is...
COBOL
DBFIPSNM
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
133
Chapter 3: DBCAREA
Positioning-value
In this language...
The variable name for Positioning-statement-number is...
PL/I
DBFIPSNM
C
dbfiPSNm
IBM Assembler
DBFIPSNM
This routine...
Does this for Positioning-statement-number...
DBCHINI
writes
DBCHCL
reads (FET)
Positioning-statement-number is
used by...
To...
applications
write
Use of this setting does not require use of Change-option. That is, honoring Positioningstatement-number depends only upon the setting of Positioning-action, not Change-option.
Positioning-value
Positioning-value specifies either the row number, the byte offset into a BLOB, or the
character offset into a CLOB, from which the Fetch is to be performed when Positioningaction indicates other than Next-parcel.
When specifying a row number, by convention, a value of zero represents parcels that precede
the first row (such as Success, OK, or ResultSummary). When specifying a byte or character
offset, by convention, a value of zero corresponds to the first byte or character. A value of zero
also returns Success or ResultSummary, Data-information-extended, and No-operation
parcels before the Multipart-record parcel for the start of the data.
134
In this language...
The variable name for Positioning-value is...
COBOL
DBFIPVAL
PL/I
DBFIPVAL
C
dbfiPVal
IBM Assembler
DBFIPVAL
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Protocol-Function
This routine...
Does this for Positioning-value...
DBCHINI
writes
DBCHCL
reads (FET)
Positioning-value is used by...
To...
applications
write
Use of this setting does not require use of Change-option. That is, honoring Positioning-value
depends only upon the setting of Positioning-action, not Change-option.
Protocol-Function
Protocol-Function is a one byte field that specifies the 2PC optimizations that are being used.
This feature requires one of the following Teradata software releases:
•
Teradata Database for UNIX version 2 release 2 (or later)
•
Teradata DBS for TOS version 1 release 5 (or later)
In this language...
The variable name for Protocol-Function is...
COBOL
DBCAREA-IWPF-FUNCTION
PL/I
IWPF_FUNCTION
C
iwpf_function
IBM Assembler
DBRIPF
This routine...
Does this for Protocol-Function...
DBCHINI
writes
DBCHCL
reads (IWPF)
Protocol-Function is used by...
To...
applications
write
You can set the following in IWPF:
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
135
Chapter 3: DBCAREA
Refresh-cached-data
M...
Then set Protocol-Function to
no Protocol-Function is used
'N'
vote is to be appended
'V'
vote and terminate is to be appended
'T'
Use mnemonics for the codes. Mnemonics are provided in the language definition file for the
DBCAREA.
Refresh-cached-data
Refresh-cached-data specifies whether response data previously processed by CLIv2 can be reused or must be reread from the Teradata Database.
Refresh-cached-data exists only when DBCHINI had been called for a DBCAREA with Totallength set to at least 640 (that is, the returned DBCAREA Level value is at least 1). For a
smaller DBCAREA, Refresh-cached-data is ignored.
In this language...
The variable name for Refresh-cached-data is...
COBOL
DBRIRCD
PL/I
DBRIRCD
C
dbriRCD
IBM Assembler
DBRIRCD
This routine...
Does this for Refresh-cached-data...
DBCHINI
writes
DBCHCL
reads (RSUP; IRQ; IWPF)
Refresh-cached-data is
used by...
To...
applications
write
One of the following values may be set before initiating a request:
136
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Request Buffer Length
If the previously processed response...
Then set Refresh-cached-data to...
indicates that response data previously
processed by CLIv2 can be re-used (default)
'N'
indicates that response data previously
processed by CLIv2 must be reread from the
Teradata Database.
'Y'
Use mnemonics for the codes. Mnemonics are provided in the language definition file for the
DBCAREA.
Request Buffer Length
Request Buffer Length is a four byte field that specifies the desired length of the buffer in
which requests are placed for sending to the Teradata Database.
In this language...
The variable name for Request Buffer Length is...
COBOL
DBCAREA-REQ-BUF-LEN
PL/I
REQ_BUF_LEN
C
req_buf_len
IBM Assembler
DBCIRBRL
This routine...
Does this for Request Buffer Length...
DBCHINI
writes
DBCHCL
reads (CON; RSUP; IRQ; IWPF; CMD; CRQ)
Request Buffer Length is used
by...
To...
applications
write
The value of zero indicates that DBCHCL is to use the default value from the HSHSPB for the
Request Buffer Length.
The application may change the value in Request Buffer Length. The minimum value is 256,
and the maximum value is 2147483647.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
137
Chapter 3: DBCAREA
Request Length
When less than the maximum is specified, CLIv2 increases the size of the request buffer as
needed.
Note: The maximum size request that can be specified for the Initiate Request function is 10,
12, or 24 bytes less than this buffer size, depending on support by the server. These bytes are
used by CLIv2 to add a parcel header and a Respond-type parcel.
Request Length
Request Length is a four byte field that is the length (in bytes) of the request string.
In this language...
The variable name for Request Length is...
COBOL
DBCAREA-REQ-LEN
PL/I
REQ_LEN
C
req_len
IBM Assembler
DBRIRQL
This routine...
Does this for Request Length...
DBCHINI
writes
DBCHCL
reads (IRQ; CMD; IWPF; CRQ)
Request Length is used by...
To...
applications
write.
When Request Mode is set to...
Then...
B
CLIv2 does not validate the length further
P
If the maximum parcel is set to O, the maximum value is
approximately 32763.
If the maximum parcel is set to H, the maximum value is
approximately 65531.
The actual maximum may vary slightly with the version of the Teradata Database being used,
but may be obtained using the DBCHQE CLIv2-limits query.
When sending segments of a stored procedure (refer to Chapter 17: “Stored Procedures” for
details), the actual maximum may vary slightly with the version of the Teradata Database
138
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Request Mode
being used; the value may be obtained using the DBCHQE CLIv2-limits query (or the
deprecated Maximum-segment-size query).
When using the Continue-request function, the total size of a large object may be obtained
using the DBCHQE SQL-limits query.
Setting Up the Call to DBCHCL
The following applies to setting the value for Variable Length Request prior to making a call to
DBCHCL.
If the
application
sets Variable
Length
Request to...
Then the ...
Y
Request Length field is ignored and the Request Pointer must point to the two-byte
area containing the length of the request string, which is followed by the actual
request string.
N
application must supply the length information separately from the request string,
in Request Length. See “Variable Length Request” on page 198.
Request Mode
Request Mode is a one byte field that specifies the form that a request and optional data are
passed from the application to CLIv2.
In this language...
The variable name for Request Mode is ...
COBOL
DBCAREA-REQUEST-MODE
PL/I
REQUEST_MODE
C
request_mode
IBM Assembler
DBOQMOD
This routine...
Does this for Request Mode...
DBCHINI
writes
DBCHCL
reads (CON; RSUP; IEPF; CRQ)
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
139
Chapter 3: DBCAREA
Request-parcel-format
Request Mode is used by
To...
applications
write
Request Mode is initialized to the default value provided for Request Mode (IBOQMOD) in
the HSHSPB.
When the value for Request Mode is not appropriate for the application, you should perform
the following procedure before calling DBCHCL for the Initiate Request function:
1
Set Change Options to ‘Y‘.
2
Change the value for Request Mode as follows.
If the application is passing to CLIv2...
Then change the
value for Request
Mode to...
the Request parcel body and, optionally, the Using Data parcel body and
parcel elements in a DBCAREA extension
P
a pre-built buffer containing parcels
B
Use mnemonics for the codes. Mnemonics are provided in the language definition file for the
DBCAREA.
An application that uses Buffer Mode is responsible for setting the Keep Response option and
Response Buffer Size options consistent with the response parcel provided in the pre-built
request buffer. If any of the request parcels have the alternate parcel header then any of the
response parcels may also have the alternate header. If the response requires use of the
alternate header because the size of the parcel body will exceed 65535 bytes, then at least one
of the request parcels built by the application must use the alternate header.
Note: The parcels included are sent to the Teradata Database. The application is responsible
for building the parcel as demanded by the protocol being used.
This option is used by some of the defined protocols of Teradata, such as FastLoad, Hut, and
MultiLoad. It is not recommended for use in Teradata sessions.
Variable Length Request Mode is supported with Buffer Mode Request Mode.
Request Mode is read by the call to DBCHCL for the connect and runstartup options and
stored in the appropriate control blocks, but it is not used during either function.
Request-parcel-format
Request-parcel-format specifies whether CLIv2 uses alternate parcel headers to build request
parcels when supported by the server.
140
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Request-parcel-format
The following table describes the Request-parcel-format variable.
In this language...
The variable name for Request-parcel-format is...
COBOL
DBRIRPF
PL/I
DBRIRPF
C
dbriRPF
IBM Assembler
DBRIRPF
This routine...
Does this for Request-parcel-format...
DBCHINI
writes
DBCHCL
reads (CON; RSUP; IRQ; IWPF)
Request-parcel-format is used
by...
To...
applications
write
Set one of the following values before calling the Fetch function:
If Request-parcel-format is set
to...
Then Request-parcel-format...
'A'
allows CLIv2 to use whichever parcel header is supported by
the server.
'D'
('D' is a deprecated value now treated as 'A')
'O'
forces use of original parcel headers
Note: For new applications, Request-parcel-format should always be set to ‘A‘.
Use mnemonics for the codes. Mnemonics are provided in the language definition file for the
DBCAREA.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
141
Chapter 3: DBCAREA
Request Pointer
Request Pointer
Request Pointer is a four byte field that specifies the address of the request string.
In this language...
The variable name for Request Pointer is...
COBOL
DBCAREA-REQ-PTR
PL/I
REQ_PTR
C
req_ptr
IBM Assembler
DBRIRQP
This routine...
Does this for Request Pointer...
DBCHINI
writes
DBCHCL
reads (IRQ; IWPF; CMD; CRQ)
Request Pointer is used by...
To...
applications
write
Before calling DBCHCL for the Initiate Request function, the application must build a request
string, such as a Teradata SQL request.
If Variable Length Request is
set to...
Then Request Pointer must contain the address of...
N
the beginning of the request string.
Y
the two-byte length field immediately preceding the request string
(see “Variable Length Request” on page 198).
The request string should not be enclosed in apostrophes.
If there is more than one statement in the request, a semicolon must separate the statements.
A semicolon after the last statement in the request is optional.
Request Pointer and the Using row descriptor
If a USING row descriptor is included in the Teradata SQL request, the USING row descriptor
must be the very first clause in the request.
142
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Request Processing Option
The USING row descriptor names and describes each field of the data pointed to by Using
Data Pointer, in positional sequence.
Each field name may be referred to any number of times in any number of statements in that
request, including the case of no references to that name. The maximum number of fields may
be obtained using the DBCHQE SQL-limits query.
An example of a valid request follows:
USING x1 (INTEGER), x2 (CHAR (2) )
SELECT * FROM t1 WHERE c1 = :x2;
SELECT * FROM t2 WHERE c2 = :x2;
The USING row descriptor is also used for macro arguments, as in the following example:
USING x1 (INTEGER) EXEC MACRO (:x1);
For more information about the nature of the USING row descriptor and where it is placed in
relation to other information, see SQL Fundamentals.
Request Processing Option
Request Processing Option is a one byte field that specifies whether the Teradata Database is
to return the data described in the request string or return information about the data
described in the request string.
In this language...
The variable name for Request Processing Option is...
COBOL
DBCAREA-REQ-PROC-OPT
PL/I
REQ_PROC_OPT
C
req_proc_opt
IBM Assembler
DBOFUNT
This routine...
Does this for Request Processing Option...
DBCHINI
writes
DBCHCL
reads (CON; RSUP; IWPF; CMD; IRQ)
Request Processing Option is
used by...
To...
applications
write
Request Processing Option is initialized by DBCHINI to the default value provided for
Request Processing Option in the HSHSPB.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
143
Chapter 3: DBCAREA
Request Processing Option
When the value for Request Processing Option is not appropriate for the application, you
should perform the following procedure before calling DBCHCL for the Connect,
RunStartUp, Command, Initiate with Protocol-Function, or Initiate Request function:
1
Set Change Options to ‘Y‘.
2
Change Request Processing Option as follows:
If the Teradata Database is to...
Then change the
value for Request
Processing Option
to...
execute the request and send back the returned data
E
Analyze each statement in the request. The statements may not contain
parameterized SQL.
P
If the request is valid, the Teradata Database will send back a time
estimate and format information about the data that it would return if
the request were executed.
Note that the time estimate is the same as EXPLAIN returns.
Analyze each statement in the request. The statements may contain
parameterized SQL. If the request is valid, the Teradata Database will
return a time estimate and format information about the data that would
be returned if the request were executed. The time estimate is the same as
EXPLAIN returns.
S
Analyze each statement in the request, then execute the request. The
statements may contain parameterized SQL. If the request is valid, the
Teradata Database will return not only a time estimate and format
information about the data that would be returned if the request were
executed, but also the data resulting from the executed request. Note that
the time estimate is the same as EXPLAIN returns.
B
The difference between "P" and "S" is that "P" does not support parameterized SQL while "S"
does.
Use mnemonics for the codes. Mnemonics are provided in the language definition file for the
DBCAREA.
If the request is not valid, the Teradata Database sends back an Error or Failure parcel, the
same as if Request Processing Option is set to E.
If "S" or "B" is specified but the Teradata Database does not support that option, a Failure
parcel with error code 3749 will be returned.
Request Processing Option is read by the call to DBCHCL for the Connect function and
stored in the appropriate control blocks but is not used during the connect.
144
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Request-token
Request-token
Request-token is a four byte field that is used to specify a user-defined identifier for the
request.
In this language...
The variable name for Request-token is...
COBOL
DBCAREA-Request-token
PL/I
Request-token
C
Request-token
IBM Assembler
DBCIURQN
This routine...
Does this for Request-token...
DBCHINI
writes
DBCHCL
reads (CON; RSUP; IWPF; CMD; IRQ)
DBCHWAT
uses
Request-token is used by...
To...
applications
write
Request-token is maintained for each request and is returned by DBCHWAT when a pending
request has completed its transfer.
At the discretion of the application programmer, Request-token may be used in whatever way
is useful.
Request-token is primarily used by applications running concurrent requests or sessions,
most often to index into or point to some application-maintained request context so that an
actual request id and session id can be retrieved for later calls to fetch, rewind, abort, or end a
request.
Response Buffer Length
Response Buffer Length is a four byte field that specifies the desired length of the buffer in
which responses received from the Teradata Database are made available to the application.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
145
Chapter 3: DBCAREA
Response Mode
In this language...
The variable name for Response Buffer Length is...
COBOL
DBCAREA-RESP-BUF-LEN
PL/I
RESP_BUF_LEN
C
resp_buf_len
IBM Assembler
DBCIFBRL
This routine...
Does this for Response Buffer Length...
DBCHINI
writes
DBCHCL
reads (CON; RSUP; IWPF; CMD; IRQ; CRQ)
Response Buffer Length is
used by...
To...
applications
write
The value of zero indicates that DBCHCL is to use the default value from the HSHSPB bytes
for the Response Buffer Length.
The application may change the value in Response Buffer Length. The minimum value is 256.
The maximum value is approximately. . .
If Maximum Parcel is set to...
32767
O
65535
H
2,147,483,639
H, and the Teradata Database supports
ExtendedRespond, as indicated by the DBCHQE
Extended-response-support query.
The actual maximum may vary slightly with the version of the Teradata Database being used;
the value may be obtained using the DBCHQE CLIv2-limits query.
If Two Response Buffers in the DBCAREA is set to ‘Y‘, each response buffer is the specified
size.
Response Mode
Response Mode is a one byte field that specifies the mode in which data is to be packaged by
the Teradata Database for return to the client.
146
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Response Mode
When MultipartIndicator Response-mode is selected, the Continued-characters-state option
is also be relevant.
In this language...
The variable name for Response Mode is...
COBOL
DBCAREA-RESP-MODE
PL/I
RESP_MODE
C
resp_mode
IBM Assembler
DBORMOD
This routine...
Does this for Response Mode...
DBCHINI
writes
DBCHCL
reads (CON; RSPF; IWPF; IRQ)
Response Mode is used by...
To...
applications
write
Response Mode is initialized by DBCHINI to the default value provided for Response Mode
in the HSHSPB.
When the value for Response Mode is not appropriate for the application, you should
perform the following procedure before calling DBCHCL for any of the following functions:
When the value for Response Mode is not appropriate for the application, you should
perform the following procedure before calling DBCHCL for Connect, RunStartUp, Initiate
with Protocol-Function, or Initiate Request:
1
Set Change Options to ‘Y‘.
2
Change the value for Response Mode as follows.
Note: Unless a new application must support old versions of the Teradata Database,
which would reject its use, Response-mode should always be set to ‘M‘. The CLIv2 Query
routine QEPILOB (or QEPIASL) can be used to ascertain if the server supports this
enhancement.
If the response is to be packaged in this mode...
Then change the value for Response Mode
to...
Field
F
Record
R
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
147
Chapter 3: DBCAREA
Result-sets-OK
If the response is to be packaged in this mode...
Then change the value for Response Mode
to...
MultipartIndicator
M
Indicator
I
Use mnemonics for the codes. Mnemonics are provided in the language definition file for the
DBCAREA.
Result-sets-OK
Result-sets-OK is a one byte EBCDIC field that indicates whether SQL results selected by SQL
or External Stored Procedures may be propagated to the application.
Result-sets-OK exists only when DBCHINI had been called for a DBCAREA with Totallength set to at least 640 (that is, the returned DBCAREA Level value is at least 1). For a
smaller DBCAREA, Result-sets-OK is ignored.
In this language...
The variable name for Result-sets-OK is...
COBOL
RESULT-SETS-OK
PL/I
RESULT_SETS_OK
C
resultSetsOK
IBM Assembler
DBRIRSO
This routine. . .
Does this for Result-sets-OK. . .
DBCHINI
writes
DBCHCL
reads (RSUP; IRQ; IWPF)
Result-sets-OK are used by. . .
To...
applications
write
One of the following values may be set before initiating a request:
148
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Return Code
If...
Then set Connect Type to...
indicates that a new connection is established.
'N'
• DBRIRSON for
Assembler
• DBC_RsltSetsNo for C
• DBC-NO for COBOL
• DBC_RSLT_SETS_NO
for PL/I
indicates that the connection used to call the procedure is
used.
'Y'
•
•
•
•
DBRIRSOY for Assembler
DBC_RsltSetsYes for C
DBC-YES for COBOL
DBC_RSLT_SETS_YES
for PL/I
If not specified, the default from the HSHSPB is used, which as distributed is "N". This default
is provided to allow the possible return of results from a procedure in diagnostic situations.
The procedure could always attempt to return diagnostic information but this information is
received by the application only if the HSHSPB default is changed. If such use is envisioned,
the application should allow for the ResultSet parcel and data even though it is not expected
under normal circumstances.
For details on External Stored Procedures, refer to Chapter 17: “Stored Procedures.”
Return Code
Return Code is a four byte field that specifies the state of the call as known by DBCHCL and
TDP.
In this language...
The variable name for Return Code is...
COBOL
DBCAREA-RETURN-CD
PL/I
RETURN_CD
C
return_cd
IBM Assembler
DBCRCODE
This routine...
Does this for Return Code...
DBCHINI
writes
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
149
Chapter 3: DBCAREA
Return-identity-data
This routine...
Does this for Return Code...
DBCHCL
writes
Return Code is used by...
To...
applications
read
Applications should access the return code using a more reliable method than using the
Return Code in the DBCAREA.
Some recommended options include the following:
•
Use the Assembler register 15 (the most direct method for getting the return code).
•
Include a parameter in the call itself, in which the return code will be placed (note that if
CLIv2 cannot access this parameter, the return code will not be placed in it).
After regaining control from DBCHCL, the application can use the Return Code as the first
indicator (initial status) of the success of the call, from the point of view of CLIv2 and the
TDP.
For more information on return codes, see “Return Code” on page 149.
Return-identity-data
Return-identity-data specifies whether data is returned in response to an SQL Insert operation
when Identity columns are involved. An Identity column is a table column created using the
'GENERATED ... AS IDENTITY' SQL syntax.
150
In this language...
The variable name for Return-identity-data is...
COBOL
RETURN-IDENTITY-DATA
PL/I
RETURN_IDENTITY_DATA
C
returnIdentityData
IBM Assembler
DBRIRID
This routine...
Takes this action for Return-identity-data...
DBCHINI
writes
DBCHCL
reads (IRQ; RSUP; IWPF)
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Return-objects-as
Return-identity-data is used by...
To...
applications
write
One of the following values may be set before initiating a request:
If Return-identity-data is set to...
Then Return-identity-data...
'N'
indicates that no fields are returned.
'C'
indicates that the values for any Identity columns is
returned.
'R'
indicates that the values for all fields in an inserted row
that contains Identity columns are returned.
Note: If not specified, "N" is assumed.
Return-objects-as
Return-objects-as specifies how large objects are to be returned to the application. The value
indicates whether the actual data is returned or simply locators to the actual data.
In this language...
The variable name for Return-objects-as is...
COBOL
DBRIROB
PL/I
DBRIROB
C
dbriROb
IBM Assembler
DBRIROB
This routine...
Takes this action for Return-objects-as...
DBCHINI
writes
DBCHCL
reads (IRQ; RSUP; IWPF)
Return-objects-as is used by...
To...
applications
write
Return-objects-as is initialized to the default value provided in the site's HSHSPB.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
151
Chapter 3: DBCAREA
Return-statement-info
If the default is not appropriate for the
application...
Set Change-options to...
before calling DBCHCL for the Initiate,
Initiate With Protocol-function, or Run
Startup function.
'Y'
data
'D'
transaction-related locator
'T'
spool-related locator
'S'
Use mnemonics for the codes. Mnemonics are provided in the language definition file for the
DBCAREA.
Return-statement-info
Return-statement-info specifies whether StatementInformation response parcels may be
returned instead of DataInfo[X] or PrepInfo[X] response parcels. The Teradata Database will
reject use of this option in Response-mode 'F' (Field mode).
In this language...
The variable name for Return-statement-info is...
COBOL
RETURN-STATEMENT-INFO
PL/I
RETURN_STATEMENT_INFO
C
returnStatementInfo
IBM Assembler
DBRIRSI
This routine...
Takes this action for Return-statement-info...
DBCHINI
writes
DBCHCL
reads (IRQ; RSUP; IWPF)
Return-statement-info is used by...
To...
applications
write
One of the following values may be set before initiating a request:
152
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Return-result-to
If Return-statement-info is set to...
Then Return-statement-info...
'N'
indicates that StatementInformation response parcels
may not be used.
'Y'
indicates that StatementInformation response parcels
may be used.
Note: If not specified, "N" is assumed.
Return-result-to
Return-result-to is a one byte unsigned integer that an External Stored Procedure calling
CLIv2 may provide the same information that would be provided by the WITH RETURN
clause on the SQL PROCEDURE statement for an SQL Stored Procedure. Specifically,
whether the results for an SQL request are returned to the requesting procedure, the caller of
the procedure, or the application. If propagated to the caller or application, the parcels are
preceded by a ResultSet response parcel.
Return-result-to exists only when DBCHINI had been called for a DBCAREA with Totallength set to at least 640 (that is, the returned DBCAREA Level value is at least 1). For a
smaller DBCAREA, Return-result-to is ignored.
In this language...
The variable name for Return-result-to is...
COBOL
RETURN-RESULT-TO
PL/I
RETURN_RESULT_TO
C
returnResultTo
IBM Assembler
DBRIRR
This routine. . .
Does this for Return-result-to. . .
DBCHINI
writes
DBCHCL
reads (RSUP; IRQ; IWPF)
Return-result-to are used by. . .
To...
applications
write
One of the following values may be set before initiating a request:
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
153
Chapter 3: DBCAREA
Return Time
If...
Then set Connect Type to...
indicates that the results are returned only the
procedure making the request.
'1'
indicates that the results are returned only to the
application invoking a procedure.
'2'
indicates that the results are return only to the
procedure caller.
'3'
indicates that the results are returned to both the
requester and the application.
indicates that the results are returned to both the
requester and the caller.
•
•
•
•
•
•
•
•
•
•
•
•
DBRIRRR for Assembler
DBC_RetnRsltRqstr for C
RQSTR for COBOL
DBC_RETN_RSLT_RQSTR for PL/I
DBRIRRA for Assembler
DBC_RetnRsltAppl for C
APPL for COBOL
DBC_RETN_RSLT_APPL for PL/I
DBRIRRC for Assembler
DBC_RetnRsltCaller for C
CALLER for COBOL
DBC_RETN_RSLT_CALLER for PL/I
'4'
•
•
•
•
DBRIRRRA for Assembler
DBC_RetnRsltRqstrAppl for C
RQSTR-APPL for COBOL
DBC_RETN_RSLT_RQSTR_APPL for
PL/I
'5'
• DBRIRRRC for Assembler
• DBC_RetnRsltRqstrCaller for C
• RQSTR-CALLER for COBOL
• DBC_RETN_RSLT_RQSTR_CALLER
for PL/I
If not specified, the default from the HSHSPB is used, which as distributed is 'R'.
If a value other than 1 (return the results to other than the procedure making the request) is
specified, then the DBCAREA Keep-response option must specify either 'Y' or 'P'.
For details on External Stored Procedures, refer to Chapter 17: “Stored Procedures.”
Return Time
Return Time is a one byte field that specifies if time stamps are to be generated for the
application.
154
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Return Time
In this language...
The variable name for Return Time is...
COBOL
DBCAREA-RET-TIME
PL/I
RET_TIME
C
ret_time
IBM Assembler
DBORTS
This routine...
Does this for Return Time...
DBCHINI
writes
DBCHCL
reads (CON; RSUP; IWPF; IRQ; CRQ)
Return Time is used by...
To...
applications
write
Return Time is initialized by DBCHINI to the default value provided for Return Time in the
HSHSPB.
When the value for Return Time is not appropriate for the application, you should perform
the following procedure before calling DBCHCL:
1
Set Change Options to ‘Y‘.
2
Change the value for Return Time as follows.
If time stamps are...
Then change the value for Return Time to...
to be provided
Y
not to be provided
N
Use mnemonics for the codes. Mnemonics are provided in the language definition file for the
DBCAREA.
When time stamps are specified for the Fetch function, the time stamps provided are valid
only on the first call to DBCHCL for the Fetch function.
The time stamps may be changed later. For example, if DBCHCL exchanges information with
the Teradata Database to keep the response buffer stocked.
You should only use the time stamp capability for diagnostic applications.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
155
Chapter 3: DBCAREA
Route Description Codes
Route Description Codes
Route Description Codes is a four byte field that is formatted in a manner that allows an
application written in IBM Assembler to build a WTO parameter list directly in the
DBCAREA.
In this language...
The variable name for Route Description Codes is...
COBOL
DBCAREA-ROUTE-DESC-CODES
PL/I
ROUTE_DESC_CODES
C
route_desc_codes
IBM Assembler
DBCMSGRD
This routine...
Does this for Route Description Codes...
DBCHINI
writes
DBCHCL
nothing
Route Description Codes is
used by...
To...
applications
write
Note: The application must ensure that the message area is padded with trailing blanks.
For more information on issuing a WTO, see an IBM z/OS system macros manual.
Run Length
Run Length is a four byte field that specifies the length in bytes of the run string for existing
applications that set Connect Type to R (the HSHSPB default).
156
In this language...
The variable name for Run Length is...
COBOL
DBCAREA-RUN-LEN
PL/I
RUN_LEN
C
run_len
IBM Assembler
DBCNIRSL
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Run Length
This routine...
Does this for Run Length...
DBCHINI
writes
DBCHCL
reads (CON)
Run Length is used by...
To...
applications
write
The value of Run Length must be positive.
If Connect Type is set to...
Then...
C
the maximum value is 24
R
the maximum value after reduction for any leading blanks is 16
If Run Pointer is ...
Then...
0
DBCHCL uses the default value of 7 for Run Length.
anything else
the Connect function, before calling DBHCL.
The application does the following, depending on the setting:
• Y - the Run Length field is ignored. The Run Pointer must
point to the two-byte area containing the length of the run
string, which is then followed by the actual run string.
• N - the application must supply the length information in Run
Length. See “Variable Length Request” on page 198.
If the Connect Type is set to ‘C‘, a connect parcel will be built based on the value set in Run
Length.
If the value for Run Length is...
Then...
16 or less
the LSN and Function fields in the connect parcel are set to zero,
and run string in the connect parcel is left-justified (in 16 bytes)
and spaced-filled to the right.
17 to 24
the value Run Pointer points to is moved into a connect parcel,
left-justified and zero-filled to the right.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
157
Chapter 3: DBCAREA
Run Pointer
Run Pointer
Run Pointer is a four byte field that specifies a particular set of services to be used by the
session.
In this language...
The variable name for Run Pointer is...
COBOL
DBCAREA-RUN-PTR
PL/I
RUN_PTR
C
run_ptr
IBM Assembler
DBCNIRSP
This routine...
Does this for Run Pointer...
DBCHINI
writes
DBCHCL
reads (CON)
Run Pointer is used by...
To...
applications
write
If Run Pointer is zero, DBCHCL uses DBC/SQL as the default value.
The application may specify the value of Run Pointer.
To do so, the program must build a run string or a Connect parcel body, and set Run Pointer
one of the following addresses:
•
the run string for the Run parcel
•
the connect parcel body before calling DBCHCL for the Connect function
DBC/SQL is an allowed value. Run string is not case-sensitive.
158
If Variable Length Request is...
Then Run Pointer is the address of the...
N
beginning of the run string.
Y
two-byte length field that precedes the run string.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Save Response Buffer
Save Response Buffer
Save Response Buffer is a one byte field that specifies whether the response buffer is saved
when DBCHCL is called for the End Request function.
In this language...
The variable name for Save Response Buffer is...
COBOL
DBCAREA-SAVE-RESP-BUF
PL/I
SAVE_RESP_BUF
C
save_resp_buf
IBM Assembler
DBOFSVB
This routine...
Does this for Save Response Buffer...
DBCHINI
writes
DBCHCL
reads (CON; RSUP; CMD; IWPF; IRQ; CRQ)
Save Response Buffer is used
by...
To...
applications
write
Save Response Buffer is initialized by DBCHINI to the default value provided for Save
Response Buffer in the HSHSPB.
When the value for Save Response Buffer is not appropriate for the application, you should
perform the following procedure before calling DBCHCL for any of the following functions:
•
Connect
•
RunStartUp
•
Initiate with Protocol-Function
•
Command
•
Initiate Request
1
Set Change Options to ‘Y‘.
2
Change the value for Save Response Buffer as follows.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
159
Chapter 3: DBCAREA
Segment Data
If the response buffer is to be...
Then change the value for Save Response
Buffer to...
saved and reused for another response buffer
request
Y
deallocated
N
Use mnemonics for the codes. Mnemonics are provided in the language definition file for the
DBCAREA.
If Save Response Buffer is set to ‘Y‘, one response buffer with its associated Request Context
Block is saved.
However, if the next request requires a buffer larger than the one saved, the saved buffer is
freed and another is allocated.
Note: Proper use of this option can reduce the CPU overhead that would be incurred by
always allocating a buffer for a call to DBCHCL for the Connect, RunStartUp, Initiate with
Protocol-Function, Command, or Initiate Request function and always deallocating it with a
call to DBCHCL for the End Request function.
Segment Data
Segment Data is a one byte field that specifies the processing to be performed when statements
of an SQL Stored Procedure are being segmented into multiple requests. The value indicates
whether the request is for the first, intermediate, or last segment, or if processing is cancelled.
160
In this language...
The variable name for Segment Data is...
COBOL
DBRISEG
PL/I
DBRISEG
C
dbriSeg
IBM Assembler
DBRISEG
This routine...
Does this for Segment Data. . .
DBCHINI
writes
DBCHCL
Reads (IRQ; IWPF)
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Session-desc-length
Segment Data is used by...
To...
applications
write
DBCHINI initializes the value 'N'. When segmenting data is appropriate for the application,
you should perform the following procedure before calling DBCHCL for the Initiate Request
or Initiate With Protocol Function functions (although with the latter the Initiate Protocol
function must be 'N').
1
Set Change Options to ‘Y‘.
2
Change the value for Segment Data as follows:
If the desired segmenting is. . .
Then change the value for Segment Data to...
no segmenting
N
first segment
F
intermediate segment
I
last (or only) segment
L
cancel segmenting
C
Use mnemonics for the codes. Mnemonics are provided in the language definition for the
DBCAREA.
If Segment Data is other than 'N', then the following options must be used:
•
Keep Response option must also be 'N'
•
Request Mode option must be 'P'
•
Request Processing option must be 'E'
•
2PC option must be 'N'
•
Initiate Protocol-function option must be 'N' if the Initiate with Protocol Function
function is used.
For details on SQL Stored Procedures, refer to Chapter 17: “Stored Procedures.”
Session-desc-length
Session-desc-length is a four-byte field: when the Variable-length-request option is “N” it
contains the number of bytes addressed by the Session-desc-pointer field; when the Variablelength-request option is “Y”, Session-desc-length is ignored.
Use of Session-desc requires a Connect-type setting of “C”.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
161
Chapter 3: DBCAREA
Session-desc-pointer
Session-desc-length exists only when DBCHINI had been called for a DBCAREA with Totallength set to at least 640 (that is, the returned DBCAREA Level value is at least 1). For a
smaller DBCAREA, Session-desc-length is ignored.
In this language...
The variable name for Session-desc-length...
COBOL
SESS-DESC-LEN
PL/I
SESS_DESC_LEN
C
sessDescLen
IBM Assembler
DBCNISDL
This routine...
Does this for Session-desc-length...
DBCHINI
writes
DBCHCL
reads (RCON)
Session-desc-length is used by...
To...
applications
write
The value must be positive. The sum of this length and the length used for Workload-pointer
must be less than or equal to one of the following values:
The maximum value is approximately. . .
If Maximum Parcel is set to...
32,725
O
64,493
H
2,147,483,602
H, and the Teradata Database supports
ExtendedResponse, as indicated by the
DBCHQE Extended-response-support query.
The actual maximum may vary slightly with the version of the Teradata Database being used;
the value may be obtained using the DBCHQE CLIv2-limits query.
Session-desc-pointer
Session-desc-pointer is a four-byte field: when the Variable-length-request option is “N”, if
Session-desc-length is non-zero, it contains the address of an EBCDIC character string of that
number of bytes, while if Session-desc-length is zero, Session-desc-pointer is ignored; when
162
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Session-desc-pointer
the Variable-length-request option is “Y”, it contains the address of a two-byte unsigned
integer containing the number of bytes in an EBCDIC character string followed by that string,
and Session-desc-length is ignored.
Use of Session-desc requires a Connect-type setting of “C”.
Session-desc-pointer exists only when DBCHINI had been called for a DBCAREA with Totallength set to at least 640 (that is, the returned DBCAREA Level value is at least 1). For a
smaller DBCAREA, Session-desc-pointer is ignored.
In this language...
The variable name for Session-desc-pointer...
COBOL
SESS-DESC-PTR
PL/I
SESS_DESC_PTR
C
sessDescPtr
IBM Assembler
DBCNISDP
This routine...
Does this for Session-desc-pointer...
DBCHINI
writes
DBCHCL
reads (RCON)
Session-desc-pointer is used by...
To...
applications
write
The character string has no meaning beyond that determined by the application. Any nongraphic codepoints are translated to dashes, as are any opening or closing parentheses. The
string is prefixed by “SESSDESC(“, suffixed with “)”, and added to the LogonSource column
of DBC.SessionTbl.
The sum of the lengths used for Session-desc-pointer and Workload-pointer must be less than
or equal to one of the following values:
The maximum value is approximately. . .
If Maximum Parcel is set to...
32,725
O
64,493
H
2,147,483,602
H, and the Teradata Database supports
ExtendedRespond, as indicated by the DBCHQE
Extended-response-support query.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
163
Chapter 3: DBCAREA
Session Status
The actual maximum may vary slightly with the version of the Teradata Database being used;
the value may be obtained using the DBCHQE CLIv2-limits query.
However, TDP will reject Connect requests of excessive length, and the length of the
LogonSource column is limited by the Database, and TDP will truncate any string that
exceeds that length.
Session Status
Session Status is a one byte field that designates the state of the session.
In this language...
The variable name for Session Status is...
COBOL
DBCAREA-SESS-STATUS
PL/I
SESS_STATUS
C
sess_status
IBM Assembler
DBCOFLG1
This routine...
Does this for Session Status...
DBCHINI
writes
DBCHCL
writes (FET)
Session Status is used by...
To...
applications
read.
DBCHCL places Session Status in the DBCAREA when the Fetch function initiates. If Wait
For Response is set to N, Session Status is available at the completion of the request.
There are four flags in Session Status:
164
Flag Name
Description
Pool session
This bit is set by FET at Connect completion.
Set bit X‘80‘ to this...
If the session was...
1
assigned from a session pool.
0
not assigned from a session pool.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Set Character Set
Flag Name
Description
In transaction
Set bit X‘40‘ to this...
If the session...
1
had a transaction in progress when the bit was
set.
0
did not have a transaction in session when the
bit was set.
Set bit X‘20‘ to this...
If the default database...
1
has changed or if there are still spool files.
0
has not changed or if there are not still spool
files.
Set bit X‘10‘ to this...
If a 2PC session is...
1
in doubt.
0
not in doubt.
Cleanup needed
In-Doubt
Note: The In transaction and Cleanup needed flags are dependent on timing.
A fetch is a request-level operation and the flag is a session-level report. Therefore, the current
session state may be changed by a subsequent request.
Set Character Set
Set Character Set is a one byte field that is initialized to the default value provided for Set
Character Set in the HSHSPB.
In this language...
The variable name for Set Character Set is...
COBOL
DBCAREA-SET-CHAR-SET
PL/I
SET_CHAR_SET
C
charset_type
IBM Assembler
DBOSCSP
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
165
Chapter 3: DBCAREA
Statement-status
This routine...
Does this for Set Character Set...
DBCHINI
writes
DBCHCL
reads (CON; RSUP; IWP; IRQ)
Set Character Set is used by...
To...
applications
write
When the value for Set Character Set is not appropriate for the application, you should
perform the following procedure before calling DBCHCL for any function.
1
Set Change Options to ‘Y‘.
2
Change the value for Set Character Set to N.
Use mnemonics for the codes. Mnemonics are provided in the language definition file for the
DBCAREA.
Statement-status
Statement-status specifies whether the server may return parcels rather than Success or
ResultSummary or OK parcels. When Statement-status 'E' is specified, Connect-type 'C' must
also be specified.
166
In this language...
The variable name for Statement-status is...
COBOL
DBCNISS
PL/I
DBCNISS
C
dbcniSS
IBM Assembler
DBCNISS
This routine...
Does this for Statement-status. . .
DBCHINI
writes
DBCHCL
Reads (CON, IRQ, IWPF)
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
S2C Conversion
Statement-status is used by...
To...
applications
write
If ResultSummary...
Statement-status to
indicates that Success or OK parcels are
returned
'O'
indicates that ResultSummary parcels may be
returned
'E'
Note: Unless a new application must support old versions of the Teradata Database, which
would reject its use, Statement-status should always be set to 'E'. The CLIv2 Query routine
QEPIESS (or QEPIASL) can be used to ascertain if the server supports this enhancement.
Use mnemonics for the codes. Mnemonics are provided in the language definition file for the
DBCAREA.
S2C Conversion
S2C Conversion is a one byte field that specifies the action to be taken when data in the
character set of the Teradata Database contains a character that does not exist in the client‘s
character set.
In this language...
The variable name for S2C Conversion is...
COBOL
DBCAREA-S2C-CONVERSION
PL/I
S2C_CONVERSION
C
s2c_conversion
IBM Assembler
DBCIS2CC
This routine...
Does this for S2C Conversion...
DBCHINI
writes
DBCHCL
reads (CON; RSUP; IRQ; IWPF; CRQ)
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
167
Chapter 3: DBCAREA
TDP-receipt-timestamp
S2C Conversion is used by...
To...
applications
write
S2C Conversion is initialized to the default value provided for S2C Conversion in the site‘s
HSHSPB. But if the value is not appropriate for the application, the application may, before
calling DBCHCL for Initiate or Initiate With Protocol-Function, change the value as follows:
1
Set Change Options to ‘Y‘.
2
Change the value for S2C Conversion as follows:
If...
Then set S2C
Conversion to...
such conversions are to be rejected and terminate the request
R
such conversions are to be ignored (and the unacceptable character
replaced by the character in the client‘s character set defined to be
used to represent invalid characters)
I
the Teradata Database default C2S Conversion setting is to be used
D
Use mnemonics for the codes. Mnemonics are provided in the language definition file for the
DBCAREA.
TDP-receipt-timestamp
TDP-receipt-timestamp is an eight byte field that specifies the actual time and date CLIv2 sent
the request to the TDP. TDP-receipt-timestamp is deprecated because its format is dependent
on the hardware architecture of certain channel-attached systems.
168
In this language...
The variable name for TDP-receipt-timestamp is...
COBOL
DBCAREA-HSISVC-TIME
PL/I
HSISVC_TIME
C
hsisvc_time
IBM Assembler
DBCTSTMP
This routine...
Does this for TDP-receipt-timestamp...
DBCHINI
writes
DBCHCL
writes (FET)
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
TDP Request Number
HSISVC Time is used by . ..
To...
applications
read
After a call to DBCHCL for the first Fetch function on the specified request, if Return Time is
set to ‘Y‘, the application can obtain the value of TDP-receipt-timestamp.
The time is stored in STCK (TOD clock) format.
This time stamp is the full 8-byte contents of the TOD clock.
TDP Request Number
TDP Request Number is a four byte field that is the TDP identifier of the request.
In this language...
The variable name for TDP Request Number is...
COBOL
DBCAREA-TDP-REQ-NO
PL/I
TDP_REQ_NO
C
tdp_req_no
IBM Assembler
DBCOARQN
This routine...
Does this for TDP Request Number...
DBCHINI
writes
DBCHCL
writes (CON; RSUP; IWPF; CMD; IRQ)
TDP Request Number is used
by...
To...
applications
read.
The request id is available in TDP Request Number after the application regains control from
a call to DBCHCL with function code set to any of the following:
•
Connect
•
RunStartUp
•
Command
•
Initiate with Protocol-Function
•
Initiate Request
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
169
Chapter 3: DBCAREA
Tell if Delay
DBCHCL puts TDP Request Number in the DBCAREA as soon as DBCHCL is called for a
request-generating function.
TDP Request Number is available after the application regains control from DBCHCL, even
with a connect operation.
Compare with “Output CLIv2 Request Id” on page 127.
Tell if Delay
Tell if Delay is a one byte field that specifies whether the application is to be informed of a loss
of communication with a Teradata Database while waiting for the restart to complete.
Note: Tell About Crash is a deprecated name for Tell if Delay.
If a restart is detected during logoff processing, CLIv2 reconnects the session and resubmits
the logoff request.
Tell if Delay is initialized by DBCHINI to the default value provided for Tell if Delay in the
HSHSPB
In this language...
The variable name for Tell if Delay is...
COBOL
DBCAREA-TELL-IF_DELAY
PL/I
TELL_IF_DELAY
C
tell_if_delay
IBM Assembler
DBODLYT
This routine...
Does this for Tell if Delay...
DBCHINI
writes
DBCHCL
reads (CON; RSUP; IRQ; CRQ)
Tell if Delay is used by...
To...
applications
write
The combination of Wait During Delay set to ‘N‘ and Tell if Delay set to N is not allowed.
If Wait During Delay and Tell if Delay are both set to ‘Y‘, an intermediate return code of 286 is
returned when communication is lost with the Teradata Database. If the request is still
pending, the response‘s final status is returned after communication is restored.
170
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Time1
Time1
Time1 is a four byte field that records when the request arrives at the TDP from CLIv2.
In this language...
The variable name for Time1 is...
COBOL
DBCAREA-TDPWAIT-TIME
PL/I
TDPWAIT_TIME
C
tdpwait_time
IBM Assembler
DBCTIME1
This routine...
Does this for Time1...
DBCHINI
writes
DBCHCL
writes (FET)
Time1 is used by...
To...
applications
read
After a call to DBCHCL for the first fetch function on the specified request and if Return Time
is set to ‘Y‘, the application can obtain the value of Time1.
The Time1 field is four bytes long and contains an unsigned binary timestamp. The precision
for Time1 is specified by the Timing-precision option. The validity of the Time1 field is
indicated by the Time1-status field.
Time2
Time2 is a four byte field that records when the TDP sends the request to the Teradata
Database.
In this language...
The variable name for Time2 is...
COBOL
DBCAREA-TDPDBO-TIME
PL/I
TDPDBO_TIME
C
tdpdbo_time
IBM Assembler
DBCTIME2
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
171
Chapter 3: DBCAREA
Time3
This routine...
Does this for Time2...
DBCHINI
writes
DBCHCL
writes (FET)
Time2 is used by...
To...
applications
read
After a call to DBCHCL for the first fetch function on the specified request and if Return Time
is set to ‘Y‘, the application can obtain the value of Time2.
The Time2 field is four bytes long and contains an unsigned binary timestamp. The difference
between Time2 and Time1 yields the elapsed time between those two points in processing the
request. The precision for Time2, or the differences between Time2 and Time1, is specified by
the Timing-precision option. The validity of the Time2 field is indicated by the Time2-status
field.
Time3
Time is a four byte field that records when the response arrives at the TDP from the Teradata
Database.
172
In this language...
The variable name for Time3 is...
COBOL
DBCAREA-TDPDBI-TIME
PL/I
TDPDBI_TIME
C
tdpdbi_time
IBM Assembler
DBCTIME3
This routine...
Does this for Time3...
DBCHINI
writes (FET)
DBCHCL
writes
Time3 is used by...
To...
applications
read
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Time4
After a call to DBCHCL for the first fetch function on the specified request and if Return Time
is set to ‘Y‘, the application can obtain the value of Time3.
The Time3 field is four bytes long and contains an unsigned binary timestamp. The difference
between Time3 and either Time1 or Time2 yields the elapsed time between those two points
in processing the request. The precision for Time3, or the differences between Time3 and
another Time, is specified by the Timing-precision option. The validity of the Time3 field is
indicated by the Time3-status field.
Time4
Time4 is a four byte field that records when the TDP sends the response to CLIv2.
In this language...
The variable name for Time4 is...
COBOL
DBCAREA-TDPXMM-TIME
PL/I
TDPXMM_TIME
C
tdpxmm_time
IBM Assembler
DBCTIME4
This routine...
Does this for Time4...
DBCHINI
writes
DBCHCL
writes
Time4 is used by...
To...
applications
read
After a call to DBCHCL for the first fetch function on the specified request and if Return Time
is set to ‘Y‘, the application can obtain the value of Time4.
The Time4 field is four bytes long and contains an unsigned binary timestamp. The difference
between Time4 and any of Time1 through Time3 yields the elapsed time between those two
points in processing the request. The precision for Time4, or the differences between Time4
and another Time, is specified by the Timing-precision option. The validity of the Time4 field
is indicated by the Time4-status field.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
173
Chapter 3: DBCAREA
Time5
Time5
Time5 is a four byte field that records when the response arrives in the CLIv2 response buffer.
In this language...
The variable name for Time5 is...
COBOL
DBCAREA-SRBSCHED-TIME
PL/I
SRBSCHED_TIME
C
srbsched_time
IBM Assembler
DBCTIME5
This routine...
Does this for Time5...
DBCHINI
writes
DBCHCL
writes (FET)
Time5 Time is used by...
To...
applications
read.
After a call to DBCHCL for the first fetch function on the specified request and if Return Time
is set to ‘Y‘, the application can obtain the value of Time5.
The Time5 field is four bytes long and contains an unsigned binary timestamp. The difference
between Time5 and any of Time1 through Time2 yields the elapsed time between those two
points in processing the request. The precision for Time5, or the differences between Time5
and another Time, is specified by the Timing-precision option. The validity of the Time5 field
is indicated by the Time5-status field.
Time1-status
Time1-status is a single-byte EBCDIC character that indicates the status of Time1.
Time1-status exists only when DBCHINI had been called for a DBCAREA with Total-length
set to at least 640 (that is, the returned DBCAREA Level value is at least 1). For a smaller
DBCAREA, Time1-status is not returned.
174
In this language...
The variable name for Time1-status is...
COBOL
DBCOTSS1
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Time2-status
In this language...
The variable name for Time1-status is...
PL/I
DBCOTSS1
C
dbcoTSS1
IBM Assembler
DBCOTSS1
This routine...
Does this for Time1-status...
DBCHCL
writes
Time1-status is used by...
To...
applications
reads
If Time1-status is a...
Then...
V
the timestamp is valid.
O
the timestamp overflowed. Could not be contained in fourbytes.
Space
or
binary zero
the timestamp is not valid.
Use mnemonics for the codes. Mnemonics are provided in the language definition file for the
DBCAREA.
Time2-status
Time2-status is a single-byte EBCDIC character that indicates the status of Time2.
Time2-status exists only when DBCHINI had been called for a DBCAREA with Total-length
set to at least 640 (that is, the returned DBCAREA Level value is at least 1). For a smaller
DBCAREA, Time2-status is not returned.
In this language...
The variable name for Time2-status is...
COBOL
DBCOTSS2
PL/I
DBCOTSS2
C
dbcoTSS2
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
175
Chapter 3: DBCAREA
Time3-status
In this language...
The variable name for Time2-status is...
IBM Assembler
DBCOTSS2
This routine...
Does this for Time2-status...
DBCHCL
writes
Time2-status is used by...
To...
applications
read
If Time2-status is a...
Then...
V
the timestamp is valid.
O
the timestamp overflowed. Could not be contained in fourbytes.
Space
or
binary zero
the timestamp is not valid.
Use mnemonics for the codes. Mnemonics are provided in the language definition file for the
DBCAREA.
Time3-status
Time3-status is a single-byte EBCDIC character that indicates the status of Time3.
Time3-status exists only when DBCHINI had been called for a DBCAREA with Total-length
set to at least 640 (that is, the returned DBCAREA Level value is at least 1). For a smaller
DBCAREA, Time3-status is not returned.
176
In this language...
The variable name for Time3-status is...
COBOL
DBCOTSS3
PL/I
DBCOTSS3
C
dbcoTSS3
IBM Assembler
DBCOTSS3
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Time4-status
This routine...
Does this for Time3-status...
DBCHCL
writes
Time3-status is used by...
To...
applications
read
If Time3-status is a...
Then...
V
the timestamp is valid.
O
the timestamp overflowed. Could not be contained in four-bytes.
Space
or
binary zero
the timestamp is not valid.
Use mnemonics for the codes. Mnemonics are provided in the language definition file for the
DBCAREA.
Time4-status
Time4-status is a single-byte EBCDIC character that indicates the status of Time4.
Time4-status exists only when DBCHINI had been called for a DBCAREA with Total-length
set to at least 640 (that is, the returned DBCAREA Level value is at least 1). For a smaller
DBCAREA, Time4-status is not returned.
In this language...
The variable name for Time4-status is...
COBOL
DBCOTSS4
PL/I
DBCOTSS4
C
dbcoTSS4
IBM Assembler
DBCOTSS4
This routine...
Does this for Time4-status...
DBCHCL
writes
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
177
Chapter 3: DBCAREA
Time5-status
Time4-status is used by...
To...
applications
read
If Time4-status is a...
Then...
V
the timestamp is valid.
O
the timestamp overflowed. Could not be contained in fourbytes.
Space
or
binary zero
the timestamp is not valid.
Use mnemonics for the codes. Mnemonics are provided in the language definition file for the
DBCAREA.
Time5-status
Time5-status is a single-byte EBCDIC character that indicates the status of Time5.
Time5-status exists only when DBCHINI had been called for a DBCAREA with Total-length
set to at least 640 (that is, the returned DBCAREA Level value is at least 1). For a smaller
DBCAREA, Time5-status is not returned.
178
In this language...
The variable name for Time5-status is...
COBOL
DBCOTSS5
PL/I
DBCOTSS5
C
dbcoTSS5
IBM Assembler
DBCOTSS5
This routine...
Does this for Time5-status...
DBCHCL
writes
Time5-status is used by...
To...
applications
read
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Timing-precision
If Time5-status is a...
Then...
V
the timestamp is valid.
O
the timestamp overflowed. Could not be contained in fourbytes.
Space
or
binary zero
the timestamp is not valid.
Use mnemonics for the codes. Mnemonics are provided in the language definition file for the
DBCAREA.
Timing-precision
Timing-precision is a signed two-byte value that specifies the precision of Time1 through
Time5.
In this language...
The variable name for Timing-precision is...
COBOL
DBCITSP
PL/I
DBCITSP
C
dbciTSP
IBM Assembler
DBCITSP
This routine...
Does this for Timing-precision...
DBCHCL
reads (CON; RSUP; IWPF; CMD; IRQ; CRQ)
DBCHINI
writes
Timing-precision is used by...
To...
applications
write
Timing-precision specifies the power of two by which a timestamp in microseconds is raised.
The default is 8, in which case the Time values are in units of 2**8, or 256, microseconds. The
minimum value is 0, the maximum 20.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
179
Chapter 3: DBCAREA
Total Length
Total Length
Total Length is a four byte field that specifies the length of the DBCAREA in bytes.
In this language...
The variable name for Total Length is...
COBOL
DBCAREA-TOTAL-LEN
PL/I
TOTAL_LEN
C
total_len
IBM Assembler
DBCSIZE
This routine...
Does this for Total length...
DBCHINI
reads
DBCHCL
reads
Total Length is used by...
To...
applications
write
Total Length must be initialized by the application before calling DBCHINI.
The current length of the DBCAREA is 640 bytes, but it is preferable to use a symbolic value
rather than a constant. For lengths greater than 384 but not equal to 640, the excess is
assumed to be an application appendage to the DBCAREA. In Assembler, the mnemonic
DBCAREAL reflects the maximum DBCAREA size, currently 640. The mnemonic
DBCAOLEN is the original length of 384.
Note: In the IBM Assembler macro, the symbol DBCAREAL holds the results of the
calculation of the length by the assembler.
Transaction Semantics
Transaction Semantics is a one byte field that specifies the semantics to be used for requests
within a transaction. When Transaction-semantics 'A' or 'D' is specified, Connect-type 'C'
must also be specified.
180
In this language...
The variable name for Transaction Semantics is...
COBOL
DBCAREA-SEMANTICS
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Transaction Semantics
In this language...
The variable name for Transaction Semantics is...
PL/I
TX_SEMANTICS
C
tx_semantics
IBM Assembler
DBCNITSM
This routine...
Does this for Transaction Semantics...
DBCHINI
writes
DBCHCL
reads (CON)
Transaction Semantics is used
by...
To...
applications
write
DBCHCL initializes Transaction Semantics to the default value provided for it in the HSHSPB
for your site.
When the value for Transaction Semantics is not appropriate for the application, you should
perform the following procedure before calling DBCHCL for the connect function.
1
Set Change Options to ‘Y‘.
2
Change the value for Transaction Semantics as follows.
If the transaction semantics to be used for the application is ...
Then change the value for
Transaction Semantics to...
the Teradata Database default.
D
This value is always acceptable.
ANSI
A
This value is rejected if either the Teradata Database or the
environment does not support the selection of transaction
semantics. This feature requires Teradata Database for UNIX
version 2 release 2 (or later).
Teradata
T
This value is always acceptable.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
181
Chapter 3: DBCAREA
Transforms-off
Transforms-off
Transforms-off is a one byte EBCDIC field that indicates whether SQL Structured User
Defined Types (UDTs) are transformed into their external data type or left as their constituent
attributes.
In this language...
The variable name for Transforms-off is...
COBOL
TRANSFORMS-OFF
PL/I
TRANSFORMS-OFF
C
transformsOff
IBM Assembler
DBRITO
This routine...
Does this for Transforms-off...
DBCHINI
writes
DBCHCL
reads (RSUP; IRQ; IWPF)
Transforms-off is used by...
To...
applications
write
One of the following values may be set before initiating a request: 'N' (DBRITON for
Assembler, DBC_XformsOffNo for C, DBC-NO for COBOL, DBC_XFORMS_OFF_NO for
PL/I), indicates that Structured UDTs are transformed into their external type. 'Y' (DBRITOY
for Assembler, DBC_XformsOffYes for C, DBC-YES for COBOL, DBC_XFORMS_OFF_YES
for PL/I) indicates that Structured UDTs are not transformed.
The default setting is "N".
Trusted-request
Trusted-request is a one byte EBCDIC field that indicates whether the request is trusted to use
the Teradata SQL SET QUERY_BAND='PROXYUSER=...' statement to change the session
userid. So unless the application accepts SQL requests from an outside source, this option has
no use.
182
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Two Response Buffers
In this language...
The variable name for Trusted-request is...
COBOL
TRUSTED-REQUEST
PL/I
TRUSTED-REQUEST
C
trustedRequest
IBM Assembler
DBRITRQ
This routine...
Does this for Trusted-request...
DBCHINI
writes
DBCHCL
reads (RSUP; IRQ; IWPF)
Trusted-requests is used by...
To...
applications
write
One of the following values may be set before initiating a request: 'N' (DBRITRQN for
Assembler, DBC_TrustRqstNo for C, DBC-NO for COBOL, DBC_TRUST_RQST_NO for
PL/I), indicates the request may not use the Teradata SQL SET
QUERY_BAND='PROXYUSER=...' statement to change the session userid. 'Y' (DBRITRQY
for Assembler, DBC_TrustRqstYes for C, DBC-YES for COBOL, DBC_TRUST_RQST_YES
for PL/I) indicates the request may use the Teradata SQL SET
QUERY_BAND='PROXYUSER=...' statement to change the session userid.
The default setting is "N".
Two Response Buffers
Two Response Buffers is a one byte field that specifies whether double-buffering is to be used
for the response.
In this language...
The variable name for Two Response Buffers is...
COBOL
DBCAREA-TWO-RESP-BUFS
PL/I
TWO_RESP_BUFS
C
two_resp_bufs
IBM Assembler
DBO2FBU
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
183
Chapter 3: DBCAREA
Two Response Buffers
This routine...
Does this for Two Response Buffers...
DBCHINI
writes
DBCHCL
reads (CON; RSUP; IWPF; IRQ)
Two Response Buffers is used
by...
To...
applications
write
Two Response Buffers is initialized by DBCHINI to the default value provided for Two
Response Buffers in the HSHSPB.
When the value for Two Response Buffers is not appropriate for the application, you should
perform the following procedure before calling DBCHCL for any of the following functions:
•
Connect
•
RunStartUp
•
Initiate with Protocol-Function
•
Initiate Request
1
Set Change Options to ‘Y‘.
2
Change the value for Two Response Buffers as follows.
If the response is to be...
Then change the value for Two Response Buffers to...
double-buffered
Y
single-buffered
N
Use mnemonics for the codes. Mnemonics are provided in the language definition file for the
DBCAREA.
Double buffering is useful when large responses are expected from the Teradata Database and
large response buffers are used.
Substantial improvements in response time can result by transferring the next buffer full of
response data from the Teradata Database while the previous buffer full is being accessed by
the application.
DBCHCL automatically restocks the response buffers.
The application may have to wait for data to arrive if the application is consuming the data
faster than the Teradata Database can restock the buffer, but it does not have to arrange for
data to arrive.
184
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Use-default-conn
Note: The response for the connect request is not double-buffered, even if Two Response
Buffers is set to ‘Y‘, when DBCHCL is called for the Connect function. However, any other
request‘s responses on that session are double buffered, unless the setting of Two Response
Buffers is changed before the request is submitted.
Although the value of Two Response Buffers is read and stored by the Connect function, it is
not used for the connect operation itself.
Use-default-conn
Use-default-conn is a one byte EBCDIC field that indicates whether a connection being
established by an External Stored Procedure calling CLIv2 and executing in the Teradata
Database is a new connection or the connection used by the application to call the procedure.
Use-default-conn exists only when DBCHINI had been called for a DBCAREA with Totallength set to at least 640 (that is, the returned DBCAREA Level value is at least 1). For a
smaller DBCAREA, Use-default-conn is ignored.
In this language...
The variable name for Use-default-conn is...
COBOL
USE-DEFAULT-CONN
PL/I
USE_DEFAULT_CONN
C
useDefaultConn
IBM Assembler
DBCNIDC
This routine...
Does this for...
DBCHINI
writes
DBCHCL
reads (CON; IRQ; IWPF)
Use-default-conn is used by...
To..
applications
write
One of the following values may be set before initiating a request:
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
185
Chapter 3: DBCAREA
Use Presence Bits
If...
Then set Connect Type to...
'N', indicates that a new connection is
established.
•
•
•
•
DBCNIDCN for Assembler
DBC_DfltConnNo for C
DBC-NO for COBO
DBC_DFLT_CONN_NO for PL/I)
'Y', indicates that the connection used to call the
procedure is used.
•
•
•
•
DBCNIDCY for Assembler
DBC_DfltConnYes for C
DBC-YES for COBOL,
DBC_DFLT_CONN_YES for PL/I
If not specified 'N' is assumed.
If Use-default-conn is set to 'Y', since a new connection is not being established, the following
DBCAREA settings that would normally apply to the Connect function are ignored: Connecttype, Delegate-user-identity, input-TDP-pat, Logon-length, Logon-pointer, Mechanismdata-encoding, Mechanism-data-len, Mechanism-data-ptr, Mechanism-name, Run-length,
and Run-pointer.
If Use-default-conn is set to “Y” since session-wide settings from the existing connection are
used, the following DBCAREA options that would normally apply to the Connect function
are ignored: Date-form, Language-conformance, Statement-status, Transaction-semantics,
and 2PC.
For details on External Stored Procedures, refer to Chapter 17: “Stored Procedures.”
Use Presence Bits
Use Presence Bits is a one byte field that specifies the mode in which the client will package
data to send to the Teradata Database.
186
In this language...
The variable name for Use Presence Bits is...
COBOL
DBCAREA-USE-PRESENCE-BITS
PL/I
USE_PRESENCE_BITS
C
use_presence_bits
IBM Assembler
DBOIDTA
This routine...
Does this for Use Presence Bits...
DBCHINI
writes
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Use Presence Bits
This routine...
Does this for Use Presence Bits...
DBCHCL
reads (CON; RSUP; IWPF; IRQ)
Use Presence Bits is used by...
To...
applications
write
Use Presence Bits is initialized by DBCHINI to the default value provided for Use Presence
Bits in the HSHSPB.
When the value for Use Presence Bits is not appropriate for the application, you should
perform the following procedure before calling DBCHCL for the following functions:
•
Connect
•
RunStartUp
•
Initiate with Protocol-Function
•
Initiate Request
1
Set Change Options to ‘Y‘.
2
Change the value for Use Presence Bits as follows.
If the data string has been prepared
in this mode...
Then change the value for Use Presence Bits to...
indicator (IndicData)
Y
record
N
Use mnemonics for the codes. Mnemonics are provided in the language definition file for the
DBCAREA.
To send null data to the Teradata Database, set Use Presence Bits to ‘Y‘ and provide a data
string as described for the IndicData parcel.
Note: Since DBCHCL does not parse the request string, it is the responsibility of the
application to check whether the request string contains a USING row descriptor and to set
Use Presence Bits, Using Data Pointer, and Using Data Length appropriately.
See “Variable Length Request” on page 198, for the preparation of the input data string: the
order of the two-byte length field (if used), the bytes containing indicator bits (if used), and
the bytes containing data values.
Although Use Presence Bits is read during the call to DBCHCL for the Connect function and
the RunStartUp function and is stored in the appropriate session and Request Control Blocks,
it is not usually used by the functions. Neither function sends an input data string to the
Teradata software, unless a macro that accepts the Use Presence Bits parameters is set up for
the RunStartUp function.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
187
Chapter 3: DBCAREA
Using-data-count
Using-data-count
Using-data-count is a four byte field that when not zero indicates Using-data-pointer-vector
addresses a vector of pointers to areas containing data that is associated with the USING
clause in the request string. The number of pointers in the vector is the value of
Using-data-count. If Variable-length-request is not specified, Using-data-length-vector
addresses a vector of four byte values containing the length of each area of using-data. If
Variable-length-request is specified, Using-data-length-vector is unused.
A Using-data-count of one (along with the associated data and length) is functionally
equivalent to the existing Using-data-pointer (along with the associated length). A
Using-data-count greater than one will be rejected if the server does not support Array
Operations. The DBCHQE Array-operations query may be used to ascertain whether the
server supports this feature.
Using-data-count exists only when DBCHINI had been called for a DBCAREA with Totallength set to at least 640 (that is, the returned DBCAREA Level value is at least 1). For a
smaller DBCAREA, Using-data-count is ignored.
In this language...
The variable name for Using-data-count is...
COBOL
DBRIUDC
PL/I
DBRIUDC
C
dbriUDC
IBM Assembler
DBRIUDC
This routine...
Does this for Using-data-count...
DBCHINI
writes
DBCHCL
reads (RSUP; IWPF; IRQ)
Using-data-count is used by...
To...
applications
write
Before calling DBCHCL for the Initiate Request function when the request contains a USING
modifier, the application must provide the associated using-data. Variable Length Request
applies as follows:
188
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Using Data Length
When Variable Length
Request is set to this
value...
Then...
Y
Using-data-length-vector is ignored and each data area addressed by
Using-data-pointer-vector must point to the two-byte area containing the
length of using-data, which is followed by the actual using-data.
N
the entries of Using-data-length-vector specify the length for each area.
See “Variable Length Request” on page 198.
Since CLIv2 does not parse the request string, it is the application's responsibility to set any
using-data appropriately.
Using Data Length
Using Data Length is a four byte field that has three meanings, relating to the following:
•
Contents of the request string
•
Contents of the data string
•
Length in bytes of the data string
In this language...
The variable name for Using Data Length is...
COBOL
DBCAREA-USING-DATA-LEN
PL/I
USING_DATA_LEN
C
using_data_len
IBM Assembler
DBRIUDL
This routine...
Does this for Using Data Length...
DBCHINI
writes
DBCHCL
reads (IRQ; IWPF)
Using Data Length is used by...
To...
applications
write
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
189
Chapter 3: DBCAREA
Using Data Pointer
The value of Using Data Length
must be positive, with a
maximum value of
approximately. . .
If Maximum Parcel is set to...
32763
O
65531
H
The actual maximum may vary slightly with the version of the Teradata Database being used;
the value may be obtained using the DBCHQE CLIv2-limits query
Before calling DBCHCL for the Initiate Request function and if the request contains a USING
row descriptor, the application must build a data string.
The data string must contain the data described by the USING row descriptor, and the
Variable Length Request will be set to either of the following:
When Variable Length Request is set to this
value...
Then...
Y
the Using Data Length field is ignored and the Using
Data Pointer must point to the two-byte area
containing the length of the using data string, which is
followed by the actual using data string.
N
the application must supply the length information in
Using Data Length
See “Variable Length Request” on page 198.
Since DBCHCL does not parse the request string, it is the application‘s responsibility to check
whether the request string contains a USING row descriptor and then to set Using Data
Length appropriately.
Using Data Pointer
Using Data Pointer is a four byte field that specifies the address of the data string that is
referred to by the USING row descriptor in the request string. DBCHCL does not parse the
request string.
If Using-data-count contains zero, Using-data-pointer addresses a single area containing
using-data. Any other value indicates that Using-data-pointer addresses a list of pointers to
areas containing using-data. The number of pointers in the list is the value of Using-datacount.
It is the application‘s responsibility to be certain that a data string exists and that it is pointed
to by Using Data Pointer if a USING row descriptor is in the request string. The maximum
190
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Using Data Pointer
number of fields in the Teradata SQL USING row descriptor may be obtained using the
DBCHQE SQL-limits query.
In this language...
The variable name for Using Data Pointer is...
COBOL
DBCAREA-USING-DATA-PTR
PL/I
USING_DATA_PTR
C
using_data_ptr
IBM Assembler
DBRIUDP
This routine...
Does this for Using Data Pointer...
DBCHINI
writes
DBCHCL
reads (IWPF; IRQ)
Using Data Pointer is used by...
To...
applications
write
When Using Data
Pointer has this
value...
Then the following things are true:
0
No USING row descriptor is to be in the request string
No data string is to accompany the request (thus, neither Using Data Pointer
nor Use Presence Bits contain meaningful information)
The length of the nonexistent data string is zero
anything else
A USING row descriptor begins the request string
A data string accompanies the request (thus, Using Data Pointer and Use
Presence Bits contain meaningful information)
If Variable Length
Request is set to
this value...
Then the length of the data string (including the bytes
containing presence bits, if any) is provided as the...
N
value of Using Data Length.
Y
two-byte length field preceding the data string
Before calling DBCHCL for the Initiate Request function and if the request contains a USING
row descriptor, the application must build a data string.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
191
Chapter 3: DBCAREA
Using-data-length-vector
The data string must contain the data described by the USING row descriptor, and the
Variable Length Request will be set to either of the following:
When Variable Length Request is set to this
value...
Then...
Y
the Using-data-length-vector is ignored and the each
data area addressed by Using-data-pointer-vector
must point to the two-byte area containing the length
of the using data string, which is followed by the actual
using data string.
N
the application must supply the length information in
the entries of Using-data-length-vector.
Since DBCHCL does not parse the request string, it is the application‘s responsibility to check
whether the request string contains a USING row descriptor and then to set the using-data
appropriately.
IF the data...
THEN the application...
cannot contain nulls
sets Use Presence Bits to N in the DBCAREA.
can contain nulls
inserts bytes containing indicator bits at the front of the data string and sets
Use Presence Bits to ‘Y‘. See “Use Presence Bits” on page 186.
The application does the following, depending on the setting:
• N - place the address of the string or of the first byte of presence bits, if
any, in Using Data Pointer.
• Y - insert a two-byte length field in front of the presence bytes or data
string, if there are no presence bytes, and place the address of the first
byte of the two-byte length field in Using Data Pointer. See “Variable
Length Request” on page 198..
If there is no USING row descriptor in the request string, Using Data Length should be set to
zero or Using Data Pointer should be set to zero or to hex FF000000 (PL/I nil pointer).
Using-data-length-vector
When Using-data-count is not zero, Using-data-length-vector is a four byte pointer to a
vector of four byte lengths. The lengths specify the amount of data addressed by
corresponding pointers in the Using-data-pointer-vector when Variable-length-request is not
specified. When Variable-length-request is specified, Using-data-length-vector is ignored.
The number of entries in the vector is given by Using-data-count.
Using-data-length-vector exists only when DBCHINI had been called for a DBCAREA with
Total-length set to at least 640 (that is, the returned DBCAREA Level value is at least 1). For a
smaller DBCAREA, Using-data-length-vector is ignored.
192
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Using-data-pointer-vector
In this language...
The variable name for Using-data-length-vector is...
COBOL
DBRIUDLV
PL/I
DBRIUDLV
C
dbriUDLV
IBM Assembler
DBRIUDLV
This routine...
Does this for Using-data-length-vector...
DBCHINI
writes
DBCHCL
reads (RSUP; IWPF; IRQ)
Using-data-length-vector is used
by...
To...
applications
write
The value of EACH Length must be
positive, with a maximum value of
approximately. . .
If Maximum Parcel is set to...
32763
O
65531
H
The actual maximum may vary slightly with the version of the Teradata Database being used;
the value may be obtained using the DBCHQE CLIv2-limits query.
Using-data-pointer-vector
When Using-data-pointer-vector is not zero, Using-data-pointer-vector is a four byte pointer
to a vector of pointers to data that is referred to by the USING row descriptor in the request
string. When Variable-length-request is not specified, the lengths of the data are specified by
corresponding entries in the Using-data-length-vector. When Variable-length-request is
specified, the length of the data precedes the data itself. The number of entries in the list is
given by Using-data-count.
Using-data-pointer-vector exists only when DBCHINI had been called for a DBCAREA with
Total-length set to at least 640 (that is, the returned DBCAREA Level value is at least 1). For a
smaller DBCAREA, Using-data-pointer-vector is ignored.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
193
Chapter 3: DBCAREA
Using-data-pointer-vector
In this language...
The variable name for Using-data-pointer-vector is...
COBOL
DBRIUDPV
PL/I
DBRIUDPV
C
dbriUDPV
IBM Assembler
DBRIUDPV
This routine...
Does this for Using-data-pointer-vector...
DBCHINI
writes
DBCHCL
reads (RSUP; IWPF; IRQ)
Using-data-pointer-vector is used
by...
To...
applications
write
Before calling DBCHCL for the Initiate Request function and if the request contains a USING
row descriptor, the application must build a data string.
The data string must contain the data described by the USING row descriptor, and the
Variable Length Request will be set to either of the following:
When Variable Length Request is set to this
value...
Then...
Y
the Using-data-length-vector is ignored and the each
data area addressed by Using-data-pointer-vector
must point to the two-byte area containing the length
of the using data string, which is followed by the actual
using data string.
N
the application must supply the length information in
the entries of Using-data-length-vector.
Since DBCHCL does not parse the request string, it is the application‘s responsibility to check
whether the request string contains a USING row descriptor and then to set the using-data
appropriately. The maximum number of fields in the Teradata SQL USING row descriptor
may be obtained using the DBCHQE SQL-limits query.
194
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Utility-workload
IF the data...
THEN the application...
cannot contain nulls
sets Use Presence Bits to N in the DBCAREA.
can contain nulls
inserts bytes containing indicator bits at the front of the data string and sets
Use Presence Bits to ‘Y‘. See “Use Presence Bits” on page 186.
The application does the following, depending on the setting:
• N - Places the address of the string or of the first byte of presence bits, if
any, in the data addressed by each vector entry of Using-data-pointervector.
• Y - Inserts a two-byte length field in front of the presence bytes or data
string, if there are no presence bytes, and place the address of the first
byte of the two-byte length field in the data addressed by each vector
entry of Using-data-pointer-vector. See “Variable Length Request” on
page 198.
If there is no USING row descriptor in the request string, set Using-data-count to zero.
Utility-workload
Utility-workload is a one byte EBCDIC field that is used only by Teradata utilities to indicate
whether the proprietary CHECK WORKLOAD statement will be used. When Utilityworkload 'Y' is specified, Connect-type 'C' must also be specified.
In this language...
The variable name for Utility-workload is...
COBOL
UTILITY_WORKLOAD
PL/I
UTILITY_WORKLOAD
C
utilityWorkload
IBM
DBCNIUW
This routine...
Does this for Utility-workload...
DBCHINI
writes
DBCHCL
reads (RCON, IRQ, IWPF)
Utility-workload is used by...
To...
applications
write
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
195
Chapter 3: DBCAREA
Variable Length Fetch
One of the following values may be set before initiating a request: 'N' (DBCNIUWN for
Assembler, DBC_UtilWorkloadNo for C, DBC-NO for COBOL,
DBC_UTIL_WORKLOAD_NO for PL/I), indicates the proprietary CHECK WORKLOAD
statement will not be used. 'Y' (DBCNIUWY for Assembler, DBC_UtilWorkloadYes for C,
DBC-YES for COBOL, DBC_UTIL_WORKLOAD_YES for PL/I) indicates the proprietary
CHECK WORKLOAD statement will be used.
Variable Length Fetch
Variable Length Fetch is a one byte field that specifies the location of the length information
for the data made available from the response.
In this language...
The variable name for Variable Length Fetch is...
COBOL
DBCAREA-VAR-LEN-FETCH
PL/I
VAR_LEN_FETCH
C
var_len_fetch
IBM
DBOFVAR
This routine...
Does this for Variable Length Fetch...
DBCHINI
writes
DBCHCL
reads (CON; RSUP; CMD; IWPF; IRQ; CRQ)
Variable Fetch Length is used
by...
To...
applications
write
Variable Length Fetch is initialized by DBCHINI to the default value provided for Variable
Length Fetch in the HSHSPB.
When the value for Variable Length Fetch is not appropriate for the application, you should
perform the following procedure before calling DBCHCL for Connect, RunStartUp,
Command, Initiate with Protocol-Function, or Initiate Request:
196
1
Set Change Options to ‘Y‘.
2
Change the value for Variable Length Fetch as follows.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Variable Length Fetch
Then change the value for Variable Length
Fetch to...
If the length information is to...
precede immediately the string to which it
applies
Y
be supplied separately from the string to which
it applies
N
For a parcel of data made available by DBCHCL from the response, DBCHCL supplies to
the application both the length and the address of the data.
If Variable Length Fetch is set to this value...
Then the address in Fetch Data Pointer points to...
N
the beginning of the parcel body and the length of
the parcel body is supplied separately in Fetch
Returned Data Length.
Y
a two-byte length (in binary) field that precedes
the parcel body, and the length of the parcel body
is not supplied in Fetch Returned Data Length.
You can set Variable Length Fetch to ‘Y‘ only if
Parcel Mode Fetch is set to ‘Y‘.
If the Maximum Parcel option is set to H, then the two-byte length is considered to be an
unsigned value. Because PL/I does not support unsigned integers, you cannot use the
Variable Length Fetch option to allow the PL/I VARYING attribute for the Fetch Data
pointer for responses greater than 32767.
Since the maximum value that can be contained in the two-byte length is 65535, responses
with Variable-length-fetch that require larger lengths will be rejected.
Fetch Data Pointer
parcel body
length
Fetch Returned Data Length
Fetch Data Pointer
length
parcel body
length
2417A006
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
197
Chapter 3: DBCAREA
Variable Length Request
Variable Length Request
Variable Length Request is a one byte field that specifies the location of the length information
for the data (for example, the request string, logon string, logon-mechanism data string, using
data string, or input data string session-desc or Workload).
In this language...
The variable name for Variable Length Request is...
COBOL
DBCAREA-VAR-LEN-REQ
PL/I
VAR_LEN_REQ
C
var_len_req
IBM Assembler
DBORVAR
This routine...
Does this for Variable Length Request...
DBCHINI
writes
DBCHCL
reads (CON; RSUP; IWPF; IRQ; CRQ)
Variable Length Request is
used by...
To...
applications
write
Variable Length Request is initialized by DBCHINI to the default value provided for Variable
Length Request in the HSHSPB.
When the value for Variable Length Request is not appropriate for the application, you should
perform the following procedure before calling DBCHCL.
1
Set Change Options to ‘Y‘.
2
Change the value for Variable Length Request as follows.
If the length information is to...
Then change the value
for Variable Length
Request to...
precede immediately the data to which it applies
Y
be supplied separately from the data to which it applies
N
The following figures show what the DBCAREA must contain in either of the above cases.
198
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Variable Length Request
If Variable Length
Request is set to this
value...
Then the address supplied in the appropriate pointer field points to...
Y
a two-byte (in binary) area that precedes the data.
The corresponding DBCAREA length field (for example, Request
Length, Run Length, and so on) is not used.
The length value reflects only the length of the data, and does not
include the two bytes of its own length, as shown in the following
figure.
N
the beginning of the data.
The length of the data is supplied in the appropriate DBCAREA
length field, as shown in the following figure.
If the Maximum Parcel option is set to H, then the two-byte length is considered to be an
unsigned value. Because PL/I does not support unsigned integers, you cannot use the
Variable Length Request option to allow the PL/I VARYING attribute for the Request
Pointer or the Using Data Pointer for requests greater than 32767.
Since the maximum value that can be contained in the two-byte length is 65535, larger
lengths cannot use Variable-length-request.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
199
Chapter 3: DBCAREA
Variable Length Request
In DBCAREA:
- Variable Length Request field (Y)
- Pointer field
value of
length
data
length
In DBCAREA:
- Variable Length Request field (N)
- Length field (value of length)
- Pointer field
data
length
2417A007
The setting of Variable Length Request affects the request string, logon string, run string,
using data string, and input data string.
Note: The fragments of the string must be in the following order, if applicable:
1) two-byte length information
2) n-byte indicator information
3) bytes containing the text or value information
The only string to which all three fragments apply is a data string if Variable Length Request is
‘Y‘ and Use Presence Bits is ‘Y‘.
In situations in which only two fragments apply, they must be in the order shown above.
In all cases, the pointer to the string must contain the address of the first fragment that is
supplied.
200
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Wait During Delay
Wait During Delay
Wait During Delay is a one byte field that specifies how CLIv2 should handle a request that it
is unable to initialize or complete because communication has been lost with the Teradata
Database.
Note: Wait Across Crash is a deprecated name for Wait During Delay.
In this language...
The variable name for Wait During Delay is...
COBOL
DBCAREA-WAIT-DURING-DELAY
PL/I
WAIT_DURING_DELAY
C
wait_during_delay
IBM Assembler
DBODLYW
This routine...
Does this for Wait During Delay...
DBCHINI
writes
DBCHCL
reads (CON; RSUP; IWPF; IRQ; CRQ)
Wait During Delay is used by...
To...
applications
write
Wait During Delay is initialized by DBCHINI to the default value provided for Wait During
Delay in the HSHSPB.
When the value for Wait During Delay is not appropriate for the application, you should
perform the following procedure before calling DBCHCL.
1
Set Change Options to ‘Y‘.
2
Change the value for Wait During Delay as follows.
If CLIv2 is to return control to the application...
Then change the value for Wait
During Delay to...
after communication with the Teradata Database is
restored
Y
as soon as the crash/restart is detected with a Return
Code 286
N
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
201
Chapter 3: DBCAREA
Wait-exclusion
If a restart occurs during a logoff request, CLIv2 reconnects the session and resubmits the
logoff request.
Use mnemonics for the codes. Mnemonics are provided in the language definition file for the
DBCAREA.
Note: If Wait During Delay is set to N the session is logged off by TDP. The result of the
request is indeterminate.
Wait During Delay cannot be set to N if Tell if Delay is set to N. For more information, see
“Tell if Delay” on page 170.
Wait-exclusion
Wait-exclusion specifies whether DBCHWAT will include or exclude requests for the session
from its processing. DBCHWL processing is unaffected by the option.
Wait-exclusion exists only when DBCHINI had been called for a DBCAREA with Totallength set to at least 640 (that is, the returned DBCAREA Level value is at least 1). For a
smaller DBCAREA, Wait-exclusion is ignored.
No other CLIv2 resources support Wait-exclusion. Therefore:
•
User events and master events will affect all types of wait processing
•
A DBCHCLN call by either the application or exit will free all CLIv2 resources
In this language...
The variable name for Wait-exclusion is...
COBOL
WAIT-EXCLUSION
PL/I
WAIT-EXCLUSION
C
waitExclusion
IBM Assembler
DBCNIWE
This routine...
Does this for Wait-exclusion...
DBCHINI
writes
DBCHCL
reads (CON and RCMD)
Wait-exclusion is used by...
To...
applications
write
One of the following values may be set before initiating a request:
202
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Wait For Response
If the application...
Then set Wait-exclusion to...
indicates that requests for the session will be
processed by DBCHWAT
N
indicates that requests for the session will
not be processed by DBCHWAT
Y
Use mnemonics for the codes. Mnemonics are provided in the language definition file for the
DBCAREA.
Wait For Response
Wait For Response is a one byte field that specifies whether DBCHCL is to retain control or
return control to the application in two situations:
•
When the application has called DBCHCL for some function and DBCHCL cannot send
that request to the Teradata Database because another request in the same session is active,
DBCHCL is unable to initiate that function.
•
When the application has called DBCHCL for the fetch function and DBCHCL cannot
provide access to a parcel or buffer (depending on the setting of Parcel Mode Fetch)
because the buffer is being restocked, DBCHCL is unable to complete the fetch function.
In this language...
The variable name for Wait For Response is...
COBOL
DBCAREA-WAIT-FOR-RESP
PL/I
WAIT_FOR_RESP
C
wait_for_resp
IBM Assembler
DBOBSYW
This routine...
Does this for Wait For Response...
DBCHINI
writes
DBCHCL
reads (CON; RSUP; CMD; IWPF; IRQ; CRQ)
Wait For Response is used by...
To...
applications
write
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
203
Chapter 3: DBCAREA
Wait For Response
Wait For Response is initialized by DBCHINI to the default value provided for Wait For
Response in the HSHSPB.
When the value for Wait For Response is not appropriate for the application, you should
perform the following procedure before calling DBCHCL.
1
Set Change Options to ‘Y‘.
2
Change the value for Wait For Response as follows.
If DBCHCL is...
Then change the value
for Wait For Response
to...
not to return control until it is able to initiate or complete
Y
to return control as soon as the function‘s request has been sent to
the Teradata Database, in which case the application must use some
other method to detect when the function‘s response arrives
N
Use mnemonics for the codes. Mnemonics are provided in the language definition file for the
DBCAREA.
If Wait For Response is set to N, and one of the two situations described earlier occurs, the
return code is set to 150.
The application may try again. There are two ways to decide when it is reasonable to perform
a retry.
•
Call DBCHWAT.
When control is returned from DBCHWAT, try again. This method ties up fewer system
resources while waiting.
Several tries may be necessary.
Occasionally CLIv2 may finish one operation and start another immediately.
In that case, DBCHWAT will return control when one operation is over, but the next call
by the application to DBCHCL will not be accepted because CLIv2 has already started
another operation.
Allow for the possibility of multiple tries.
•
Try again immediately and keep trying until the call is accepted.
If you use this method, there should be a time delay coded between fetch attempts.
Note: If one of the two situations above occurs and Wait For Response is set to N, the
original call to DBCHCL was not accepted. CLIv2 is reporting “I was not able to do that;
try again later.”
Wait For Response set to ‘Y‘ is incompatible with the use of a master ECB and will result in
an error return code.
Note: Neither the Abort function nor the Disconnect function is affected by the setting of
Wait For Response.
204
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
Workload-length
Workload-length
Workload-length is a four-byte field: when the Variable-length-request option is “N” it
contains the number of bytes addressed by the Workload-pointer field; when the Variablelength-request option is “Y”, Workload-length is ignored.
Use of Workload requires a Connect-type setting of “C”.
Workload-length exists only when DBCHINI had been called for a DBCAREA with Totallength set to at least 640 (that is, the returned DBCAREA Level value is at least 1). For a
smaller DBCAREA, Workload-length is ignored.
In this language...
The variable name for Workload-length is...
COBOL
WORKLOAD-LEN
PL/I
WORKLOAD_LEN
C
workloadLen
IBM Assembler
DBCNIWLL
This routine...
Does this for Workload-length. . .
DBCHINI
writes
DBCHCL
reads (RCON)
Workload-length is used by...
To...
applications
write
The value must be positive. The sum of this length and the length used for Session-descpointer must be less than or equal to one of the following values:
The maximum value is approximately. . .
If Maximum Parcel is set to...
32,725
O
64,493
H
2,147,483,602
H, and the Teradata Database supports
ExtendedRespond, as indicated by the DBCHQE
Extended-response-support query.
The actual maximum may vary slightly with the version of the Teradata Database being used;
the value may be obtained using the DBCHQE CLIv2-limits query.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
205
Chapter 3: DBCAREA
Workload-pointer
Workload-pointer
Workload-pointer is a four-byte field: when the Variable-length-request option is “N”, if
Workload-length is non-zero, it contains the address of an EBCDIC character string of that
number of bytes, while if Workload-length is zero, Workload-pointer is ignored; when the
Variable-length-request option is “Y”, it contains the address of a two-byte unsigned integer
containing the number of bytes in an EBCDIC character string followed by that string, and
Workload-length is ignored.
Use of Workload requires a Connect-type setting of “C”.
Workload-pointer exists only when DBCHINI had been called for a DBCAREA with Totallength set to at least 640 (that is, the returned DBCAREA Level value is at least 1). For a
smaller DBCAREA, Workload-pointer is ignored.
In this language...
The variable name for Workload-pointer is...
COBOL
WORKLOAD-PTR
PL/I
WORKLOAD_PTR
C
workloadPtr
IBM Assembler
DBCNIWLP
This routine...
Does this for Workload-pointer. . .
DBCHINI
writes
DBCHCL
reads (RCON)
Workload-pointer is used by...
To...
applications
write
The character string provides application information to the Database, which defines its
format and meaning. Any non-graphic codepoints are translated to dashes, as are any opening
or closing parentheses. The string is prefixed by "WORKLOAD(", suffixed with ")", and added
to theLogonSource column of DBC.SessionTbl.
The sum of the lengths used for Workload-pointer and Session-desc-pointer must be less than
or equal to one of the following values:
206
The maximum value is approximately. . .
If Maximum Parcel is set to...
32,725
O
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 3: DBCAREA
2PC
The maximum value is approximately. . .
If Maximum Parcel is set to...
64,493
H
2,147,483,602
H, and the Teradata Database supports
ExtendedRespond, as indicated by the DBCHQE
Extended-response-support query.
The actual maximum may vary slightly with the version of the Teradata Database being used;
the value may be obtained using the DBCHQE CLIv2-limits query.
However, TDP will reject Connect requests of excessive length, and the length of the
LogonSource column is limited by the Database, and TDP will truncate any string that
exceeds that length.
2PC
2PC is a one byte field that specifies whether the session is using the 2PC protocol. When 2PC
'Y' is specified, Connect-type 'C' must also be specified.
This feature requires Teradata Database for UNIX version 2 release 2 (or later), or Teradata
DBS for TOS version 1 release 5 (or later).
In this language...
The variable name for 2PC is...
COBOL
DBCAREA-TWO-PHASE-COMMIT
PL/I
TWO_PHASE_COMMIT
C
two_phase_commit
IBM Assembler
DBO2PC
This routine...
Does this...
DBCHINI
writes
DBCHCL
reads (CON)
2PC is used by...
To...
applications
write
2PC can be set to either ‘Y‘ or ‘N‘.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
207
Chapter 3: DBCAREA
2PC
If the application...
Then set 2PC to...
uses the 2PC protocol
Y
does not use the 2PC protocol
N
Use mnemonics for the codes. Mnemonics are provided in the language definition file for the
DBCAREA.
Note: 2PC is not valid with ANSI transaction semantics.
208
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
CHAPTER 4
DBCAREA Extensions
The DBCAREA extensions allow the application to provide information to a CLIv2 function
that is not general enough to be defined within the DBCAREA.
Two DBCAREA extensions are available:
•
DBCAIRX (Initiate-request)
•
DBCACNX (Connect)
DBCAIRX
DBCAIRX is used for initiating requests. It is of variable length, is not initialized by
DBCHINI, and is allocated by the application.
The DBCAREA Extension Pointer field points to DBCAIRX. DBCAIRX does not exist if there
is a zero in the DBCAREA Extension Pointer field.
The prologue for the Assembler, COBOL, C, and PL/I mappings of the DBCAIRX provides
language-dependent information in constructing an extension and should be consulted.
The application should set unused fields to binary zeroes. This will allow successful execution
of existing applications should these fields ever be used.
DBCAIRX Field Descriptions
The DBCAIRX extension contains two logical sections:
•
Header
•
Element
DBCAIRX Header
Three possible header formats are available for the DBCAIRX.
•
Figure 3 illustrates the header if the Eyecatcher field is set to 'IRX8'. The Total Size field of
four bytes in length is used and additional fields are present at the end of the header and
pointer-element.
•
Figure 4 illustrates the header if the Eyecatcher field set to ‘IRX‘, the Total Size field of 4
bytes in length is used.
•
Figure 5 illustrates the header if the Eyecatcher field set to ‘DBCX‘, the Total Length field
of 2 bytes in length is used.
Note: New development should use only the 'IRX8' form. The others are deprecated.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
209
Chapter 4: DBCAREA Extensions
DBCAIRX
Figure 3: DBCAIRX Header Fields (Eyecatcher is ‘IRX8‘)
bytes
0
Eyecatcher, 4 bytes
4
Next Pointer, 4 bytes
8
Total Size, 4 bytes
12
Level, 1 bytes
Unused, 3 bytes
Unused, 8 bytes
16
20
2417A014
Deprecated Headers
Figure 4: Deprecated DBCAIRX Header Fields (Eyecatcher = ‘IRX‘)
offset
0
Eyecatcher, 4 bytes
4
Next Pointer, 4 bytes
8
Total Size, 4 bytes
2417A016
Figure 5: Deprecated DBCAIRX Header Fields (Eyecatcher = ‘DBCX‘)
offset
0
Eyecatcher, 4 bytes
4
Next Pointer, 4 bytes
8
Total Length, 2 bytes
Unused, 2 bytes
2417A015
DBCAIRX Elements
Immediately following the header are one or more elements. Each element will either:
210
•
Contain the actual data
•
Address the actual data
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 4: DBCAREA Extensions
DBCAIRX
When the Eyecatcher field contains 'IRX8' and the Level field contains a value of '1', there is
one element format, which either contains the data or addresses the data. New development
should use only a Level of '1'; a value of 0 is deprecated. Such elements are described by
Figure 6.
Figure 6: DBCAIRX Element When Eyecatcher is 'IRX8‘ and Level 1
offset
0
Element Length, 2 bytes
Element Type, 2 bytes
4
Parcel Flavor, 2 bytes
Unused, 2 bytes
Data Size, 4 bytes
8
12
Unused, 4 bytes
16
Data Address, 4 bytes
20
Unused, 8 bytes
24
28
Unused, 8 bytes
Parcel Data (no mandatory length)
2417A023
Deprecated Elements
When either the Eyecatcher field contains 'IRX8' and the Level field contains a value of '0', the
Eyecatcher field contains 'IRX', or the Eyecatcher field contains 'DBCX', there are two element
formats, one format contains the data and the other format addresses the data. The Element
Type field indicates which; if the leftmost bit is '0' the element contains the data; if '1', the
element addresses the data. Elements containing the data are described by Figure 7.
Figure 7: Deprecated DBCAIRX Element Containing Actual Data
offset
0
4
Element Type, 2 bytes
Element Length, 2 bytes
Parcel Data (No Mandatory Length)
2417A017
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
211
Chapter 4: DBCAREA Extensions
DBCAIRX
Elements addressing the data have one of two forms, depending upon the value of the
Eyecatcher field. When the Eyecatcher field is 'IRX8' and Level = '0', Figure 8 describes the
element; when the Eyecatcher field is 'IRX' or 'DBCX', Figure 9 describes the element.
Figure 8: DBCAIRX Element When Eyecatcher is 'IRX8‘ and Level 0
offset
0
Element Type, 2 bytes
Element Length, 2 bytes
4
Unused, 2 bytes
Data Address, 4 bytes
Data Address (continued)
Unused, 4 bytes
12
Unused (continued)
Data Size, 4 bytes
16
Data Size (continued)
Unused, 4 bytes
20
Unused (continued)
8
Unused, 8 bytes
24
28
2417A019
Figure 9: Deprecated DBCAIRX Element When Eyecatcher is 'IRX' or 'DBCX'
offset
0
Element Type, 2 bytes
Element Length, 2 bytes
4
Data Length, 2 bytes
Data Address, 4 bytes
8
Data Address
(continued)
2417A018
The sections that follow describe each of the fields in DBCAIRX. The fields are given in
alphabetical order.
Data Address
The Data Address field specifies the address of the parcel body. The symbolic name depends
upon the Eyecatcher field.
212
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 4: DBCAREA Extensions
DBCAIRX
The variable name for Data Address is...
In this language...
IRX8
IRX & DBCX
COBOL
D8XILPPT
DBXILPPT
PL/I
D8XILPPT
DBXILPPT
C
d8xilpPt
dbxilpPt
IBM Assembler
D8XILPPT
DBXILPPT
This routine...
Does this for Data Address...
DBCHINI
n/a
DBCHCL
reads (IRQ; IWPF)
Data Address is used by...
To...
applications
write
Data Length
When the Eyecatcher is ‘IRX‘ or ‘DBCX‘ the Data Length field specifies the length of the
parcel body addressed by the Data Address field.
The minimum value is 0 and:
The maximum value is...
If Maximum Parcel is set to...
32763
O
65531
H
In this language...
The variable name for Data Length is...
COBOL
DBXILPLN
PL/I
DBXILPLN
C
dbxilpLn
IBM Assembler
DBXILPLN
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
213
Chapter 4: DBCAREA Extensions
DBCAIRX
This routine...
Does this for Data Length...
DBCHINI
n/a
DBCHCL
reads (IRQ; IWPF)
Data Length is used by...
To...
applications
write
Data Size
When the Eyecatcher is ‘IRX8‘ the Data Size field specifies the length of the parcel body
addressed by the Data Address field.
The minimum value is 0 and:
The maximum value is...
If Maximum Parcel is set to...
32763
O
65531
H
The symbolic name depends upon both the Eyecatcher and Level fields:
The variable name for Data Size is...
214
In this language...
IRX8 and Level 0
IRX8 and Level 1
COBOL
D8XILPLN
D8XIEPLN
PL/I
D8XILPLN
D8XIEPLN
C
d8xilpLn
d8xiepLn
IBM Assembler
D8XILPLN
D8XIEPLN
This routine...
Does this for Data Size...
DBCHINI
n/a
DBCHCL
reads (IRQ; IWPF)
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 4: DBCAREA Extensions
DBCAIRX
Data Size is used by...
To...
applications
write
Element Length
Element Length contains the length of the individual element.
The maximum value is...
If Maximum Parcel is set to...
32767
O
65535
H
The symbolic name depends upon the Eyecatcher field.
The variable name for Element Length is...
In this language...
IRX8
IRX & DBCX
COBOL
D8XILLEN
DBXILLEN
PL/I
D8XILLEN
DBXILLEN
C
d8xilLen
dbxilLen
IBM Assembler
D8XILLEN
DBXILLEN
This routine...
Does this for Element Length...
DBCHINI
n/a
DBCHCL
reads (IRQ; IWPF)
Element Length is used by...
To...
applications
write
Element Type
When the Eyecatcher field contains 'IRX8' and the Level field contains '1', Element Type
indicates the type of element; currently only a Parcel element is supported and is indicated by
an Element Type of '1' (mnemonic of 'D8XIETP' in all languages).
When either the Eyecatcher field contains 'IRX8' and the Level field contains '0', the
Eyecatcher field contains 'IRX', or the Eyecatcher field contains 'DBCX', the Element Type not
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
215
Chapter 4: DBCAREA Extensions
DBCAIRX
only indicates whether the parcel data is in the element or simply addressed by the element,
but also specifies the parcel flavor. If the leftmost bit is zero, then the parcel body is contained
in the element itself; if this bit is one, then the parcel body is addressed by the element. The
remainder of the field contains the parcel flavor.
The symbolic name depends upon both the Eyecatcher and Level fields:
The variable name for Element Type is...
In this language...
IRX8 and Level 0
IRX8 and Level 1
IRX & DBCX
COBOL
D8XILTYP
D8XIETYP
DBXILTYP
PL/I
D8XILTYP
D8XIETYP
DBXILTYP
C
d8xilTyp
d8xieTyp
dbxilTyp
IBM Assembler
D8XILTYP
D8XIETYP
DBXILTYP
This routine...
Does this for Element Type...
DBCHINI
n/a
DBCHCL
reads (IRQ; IWPF)
Element Type is used by...
To...
applications
write
A mnemonic is provided for the high-order bit and should be used. The symbolic name
depends upon the Eyecatcher field. The name is the same for all languages, including C. For
'IRX' and 'DBCX' the name is DBXILTP. For ‘IRX8‘ the name is D8BXILTP.
Any value in Element Type greater than 4095 gives a nonzero return code. Any value in
Element Type less than 4096 and not a valid parcel flavor will result in an error being returned
from the Teradata Database.
If the high-order bit is off in Element Type, the element data contains a parcel body. However,
if the high-order bit is on in Element Type, the element data contains a pointer to the actual
parcel body and the length of the pointed to parcel body. Element Length in this case always
contains 10.
Eyecatcher
Eyecatcher in the DBCAIRX is used for self-documentation, validation, and debugging. The
symbolic name depends upon the Eyecatcher field.
216
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 4: DBCAREA Extensions
DBCAIRX
The variable name is...
In this language. . .
for Eyecatcher and ‘IRX8‘
for Eyecatcher and ‘IRX‘ or ‘DBCX‘
IBM Assembler,
COBOL, or PL/I
D8XIID
DBXIID
C
d8xiId
dbxiId
This routine...
Does this for Eyecatcher...
DBCHINI
n/a
DBCHCL
reads (IRQ; IWPF)
Eyecatcher is used by...
To...
applications
write
Eyecatcher is set to ‘IRX8‘, ‘IRX‘, or ‘DBCX‘ by the application before calling DBCHCL for
the Initiate Request function.
Note: Apostrophes are not used in Eyecatcher.
New development should use only the 'IRX8' form. The others are deprecated.
Level
When the Eyecatcher is “‘IRX8‘,” the Level field specifies the format of the extension.
In this language...
The variable name for Level is...
IBM Assembler, COBOL, or PL/I
D8XCLVL
C
d8xcLvl
This routine...
Does this for Level...
DBCHINI
n/a
DBCHCL
reads (CON)
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
217
Chapter 4: DBCAREA Extensions
DBCAIRX
Level is used by...
To...
applications
write
Level may have values of “1” or “0”. If the value is:
"1" it indicates that only one element format exists. New development should use only this
value.
"0" it indicates that two element formats exist. This value is deprecated.
Next Pointer
If nonzero, Next Pointer points to another DBCAIRX to form a linked list of DBCAIRX
extensions. For implicit Connects, Connect extensions (DBCACNX) may also be included.
The symbolic name depends upon the Eyecatcher field.
The variable name for Next Pointer is...
In this language...
IRX8
IRX & DBCX
IBM Assembler,
COBOL, or PL/I
D8XINEXT
DBXINEXT
C
d8xiNext
dbxiNext
This routine...
Does this for Next Pointer...
DBCHINI
n/a
DBCHCL
reads (IRQ; IWPF)
Next Pointer is used by...
To...
applications
write
The sequence in which the DBCAIRX extensions are linked is the same sequence in which the
parcels contained in DBCAIRXs are built in the request buffer.
If there is only one DBCAIRX, or if this is the last DBCAIRX in the linked list, then set Next
Pointer to zero or PL/I null pointer.
Parcel Flavor
The Parcel Flavor field specifies the flavor of the parcel.
218
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 4: DBCAREA Extensions
DBCAIRX
In this language...
The variable name for Parcel Flavor is...
IBM Assembler, COBOL, or PL/I
D8XIEPF
C
d8xiePF
This routine...
Does this for Parcel Flavor...
DBCHCL
reads (IRQ; IWPF)
Total Length
If ‘DBCX‘ was specified in Eyecatcher, Total Length specifies the length of one DBCAIRX in
bytes.
In this language...
The variable name for Total Length is...
IBM Assembler, COBOL, or PL/I
DBXILEN
C
dbxiLen
This routine...
Does this for Total Length...
DBCHINI
n/a
DBCHCL
reads (IRQ; IWPF)
Total Length is used by...
To...
applications
write
Total Length must be set by the application before calling DBCHCL. This length is validated
against the sum of the lengths of the individual elements in the DBCAIRX plus the header. If it
is not correct, the Teradata Database sends a nonzero return code.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
219
Chapter 4: DBCAREA Extensions
DBCACNX
Total Size
If ‘IRX8 or IRX‘ was specified in Eyecatcher, Total Size specifies the length of one DBCAIRX
in bytes.
The variable name for Total Size is...
In this language...
IRX8
IRX
IBM Assembler,
COBOL, or PL/I
D8XISIZE
DBXISIZE
C
d8xiSize
dbxiSize
This routine...
Does this for Total Size...
DBCHINI
n/a
DBCHCL
reads (IRQ; IWPF)
Total Size is used by...
To...
applications
write
Total Size must be set by the application before calling DBCHCL. This size is validated against
the sum of the sizes of the individual elements in the DBCAIRX plus the header. If it is not
correct, the Teradata Database sends a nonzero return code.
DBCACNX
The DBCACNX extension applies only to the explicit Connect, or an implicit Connect for the
RunStartup, Initiate Request, or Initiate request With Protocol-function, and only when the
Connect-type option specifies a combined logon and connect. Use of the
Connection-extension will be rejected if the Connect-type option specifies a separate logon
and run. When used, it should be pointed to by the Extension Pointer DBCAREA field before
invoking the function. The Extension Pointer should be zeroed after the function to prevent
subsequent functions from attempting to use it.
The prologue for the Assembler, COBOL, C, and PL/I, mappings of the DBCACNX provides
language-dependent information in constructing an extension and should be consulted.
Note: the DBCACNX currently provides no data used by channel-connected systems and is
documented here only for completeness.
220
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 4: DBCAREA Extensions
DBCACNX
DBCACNX Field Descriptions
The DBCACNX consists of two logical sections:
•
Header
•
Element
One header always exists and is followed by one or more elements. If data is associated with an
element, it may either be included with the element or pointed to by the element. More than
one extension may be chained together.
Figure 10 lists the sequential order of the header fields. Figure 11 lists the sequential order of
the element fields.
Figure 10: DBCACNX Header Fields
offset
0
Eyecatcher, 4 bytes
4
Next Pointer, 4 bytes
8
Length, 4 bytes
12
Level, 1 byte
Unused, 3 bytes
2417A020
When the Level field contains a value of '2', there is an additional header field as shown below:
offset
16
Unused, 8 bytes
20
2417A022
New development should use only the level 2 form. The level 1 form is deprecated.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
221
Chapter 4: DBCAREA Extensions
DBCACNX
Figure 11: DBCACNX Element Fields When Level = 2
offset
0
Element Type, 2 bytes
Element Length, 2 bytes
4
Unused, 2 bytes
Data Type, 2 bytes
8
Data Length, 4 bytes
12
Data Pointer, 4 bytes
Unused, 4 bytes
(Level 2 only)
16
20
Unused, 8 bytes
(Level 2 only)
24
Data (no fixed length)
16 or 28
2417A021
The sections that follow describe each of the fields in alphabetical order.
Data-length
Data-length is a four-byte unsigned integer field into which the length of the data is placed. If
no data is associated with this type, the field is zero.
The variable name for Data-length is...
222
In this language...
Level 2
Level 1
COBOL
D8XCEDLN
DBXCEDLN
PL/I
D8XCEDLN
DBXCEDLN
C
d8xcedLn
dbxcedLn
IBM Assembler
D8XCEDLN
DBXCEDLN
This routine...
Does this for Data-length. . .
DBCHINI
n/a
DBCHCL
reads (CON)
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 4: DBCAREA Extensions
DBCACNX
Data-length is used by...
To...
applications
write
Note: If the length of an element would exceed 65535 (32767 for PL/I), then the data may not
be part of the element and Data-pointer must be used to address the data.
Data-pointer
Data-pointer is a four-byte field into which the pointer to the data is placed. If either there is
no data associated with this type or the data is included in the element, the field is zero or null.
The variable name for Data-pointer is...
In this language...
Level 2
Level 1
COBOL
D8XCEDPT
DBXCEDPT
PL/I
D8XCEDPT
DBXCEDPT
C
d8xcedPt
dbxcedPt
IBM Assembler
D8XCEDPT
DBXCEDPT
This routine...
Does this for Data-pointer. . .
DBCHINI
n/a
DBCHCL
reads (CON)
Data-pointer is used by...
To...
applications
write
Data-type
Data-type is a two-byte unsigned integer field into which the type of data is placed.
The variable name for Data-type is...
In this language...
Level 2
Level 1
COBOL
D8XCEDTY
DBXCEDTY
PL/I
D8XCEDTY
DBXCEDTY
C
d8xcedTy
dbxcedTy
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
223
Chapter 4: DBCAREA Extensions
DBCACNX
The variable name for Data-type is...
IBM Assembler
D8XCEDTY
DBXCEDTY
This routine...
Does this for Data-type. . .
DBCHINI
n/a
DBCHCL
reads (CON)
Data-type is used by...
To...
applications
write
The following types are supported:
•
1 for Client Userid (mnemonic DBXCEDTU)
•
2 for Client Password (mnemonic DBXCEDTP)
•
3 for Client Domain (mnemonic DBXCEDTD)
Element-length
Element-length is a two-byte unsigned integer field into which the length of the element is
placed.
The variable name for Element-length is...
224
In this language...
Level 2
Level 1
COBOL
D8XCLLEN
DBXCLLEN
PL/I
DB8XCLLEN
DBXCLLEN
C
d8xclLen
dbxclLen
IBM Assembler
D8XCLLEN
DBXCLLEN
This routine...
Does this for Element-length. . .
DBCHINI
n/a
DBCHCL
reads (CON)
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 4: DBCAREA Extensions
DBCACNX
Element-length is used by...
To...
applications
write
Element-type
Element-type is a two-byte unsigned integer field into which the type of element is placed.
Currently, there is only one type of element, a data element with a type of 0.
The variable name for Element-type is...
In this language...
Level 2
Level 1
COBOL
D8XCLTYP
DBXCLTYP
PL/I
D8XCLTYP
DBXCLTYP
C
d8xclTyp
dbxclTyp
IBM Assembler
D8XCLTYP
DBXCLTYP
This routine...
Does this for Element-type. . .
DBCHINI
n/a
DBCHCL
reads (CON)
Element-type is used by...
To...
applications
write
The mnemonic DBXCETD should be used to define a data element.
Eyecatcher
Eyecatcher is a four-byte field into which the EBCDIC characters 'CNX ' must be placed.
The variable name for Eyecatcher is...
In this language...
Level 2
Level 1
COBOL
D8XCID
DBXCID
PL/I
D8XCID
DBXCID
C
d8xcId
dbxcId
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
225
Chapter 4: DBCAREA Extensions
DBCACNX
The variable name for Eyecatcher is...
IBM Assembler
D8XCID
DBXCID
This routine...
Does this for Eyecatcher. . .
DBCHINI
n/a
DBCHCL
reads (CON)
Eyecatcher is used by...
To...
applications
write
The mnemonic DBXCICNX contains 'CNX ' and should be used to initialize this field.
Length
Length is a four-byte unsigned integer field into which the total length of the extension is
placed. The length includes the header fields, the fields of all elements, and any in-line data for
the elements.
The variable name for Length is...
226
In this language...
Level 2
Level 1
COBOL
D8XCLEN
DBXCLEN
PL/I
D8XCLEN
DBXCLEN
C
d8xcLen
dbxcLen
IBM Assembler
D8XCLEN
DBXCLEN
This routine...
Does this for Length. . .
DBCHINI
n/a
DBCHCL
reads (CON)
Length is used by...
To...
applications
write
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 4: DBCAREA Extensions
DBCACNX
Level
The Level field specifies the format of the extension. The current level is 2. New development
should use only the level 2 form. The level 1 form is deprecated.
The variable name for Level is...
In this language...
Level 2
Level 1
COBOL
D8XCLVL
DBXCLVL
PL/I
D8XCLVL
DBXCLVL
C
d8xcLvl
dbxcLvl
IBM Assembler
D8XCLVL
DBXCLVL
This routine...
Does this for Level...
DBCHINI
n/a
DBCHCL
reads (CON)
Level is used by...
To...
applications
write
The mnemonic DBXCLVLC should be used to initialize this field.
Next-pointer
Next-pointer is a four-byte field into which the pointer to the next Connect-extension is
placed. If another Connect-extension does not exist, the field is zero or null.
The variable name for Next-pointer is...
In this language...
Level 2
Level 1
COBOL
D4XCNEXT
DBXCNEXT
PL/I
D4XCNEXT
DBXCNEXT
C
d4xcNext
dbxcNext
IBM Assembler
D4XCNEXT
DBXCNEXT
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
227
Chapter 4: DBCAREA Extensions
DBCACNX
228
This routine...
Does this for Next-pointer...
DBCHINI
n/a
DBCHCL
reads (CON)
Next-pointer is used by...
To...
applications
write
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
CHAPTER 5
Release Tapes
This chapter describes:
•
Finding Files on the Release Tape
•
System Parameter Block
•
System Parameter Block (HSHSPB)
•
HSHSPB Assembler Source
Finding Files on the Release Tape
DBCAREA
Definitions for the DBCAREA, provided for each program language, are located on a release
tape as shown below:
For this Language...
Definitions for DBCAREA are located in the...
IBM Assembler
DBCAREA in library SAMPLIB (z/OS).
C
DBCAREAH in library SAMPLIB (z/OS).
COBOL
DBCAREAC in library SAMPLIB (z/OS).
DBCHQACC maps the Available-character-sets query response;
DBCHQERC maps all other query responses.
PL/I
DBCAREAP in library SAMPLIB (z/OS)
DBCAIRX
Definitions for DBCAREA extensions (DBCAIRX), provided for each program language, are
located as shown below:
For this language...
Definitions for DBCAIRX are located in the. . .
IBM Assembler
DBCAIRX in library SAMPLIB (z/OS).
C
DBCAIRXH in library SAMPLIB (z/OS).
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
229
Chapter 5: Release Tapes
Finding Files on the Release Tape
For this language...
Definitions for DBCAIRX are located in the. . .
COBOL
DBCAIRXC, DBCAIREC, and DBCAIRLC in library SAMPLIB
(z/OS) .
Note: DBCAIRXC maps the extension header and DBCAIRLC
maps the extension element. DBCAIRLC maps a deprecated
extension element.
PL/I
DBCAIRXP in library SAMPLIB (z/OS).
DBCACNX
Definitions for DBCACNX (DBCAREA Connect-extension), provided for each programming
language, are located as shown below:
For this language...
Definitions for DBCACNX are located in the. . .
IBM Assembler
DBCACNX in library SAMPLIB (z/OS).
C
DBCACNXH in library SAMPLIB (z/OS).
COBOL
DBCACNXC and DBCACNLC in library SAMPLIB (z/OS).
Note: DBCACNXC maps the extension header and DBCACNLC maps
the extension element.
PL/I
DBCACNXP in library SAMPLIB (z/OS).
DBCHMEP
Definitions for DBCHMEP (DBCHME parameters), provided for each programming
language, are located as shown below:
For this language...
Definitions for DBCHMEP are located in the. . .
IBM Assembler
DBCHMEP in library SAMPLIB (z/OS).
C
DBCHMEPH in library SAMPLIB (z/OS).
COBOL
DBCHMEPC in library SAMPLIB (z/OS).
PL/I
DBCHMEPP in library SAMPLIB (z/OS).
DBCHQEP
Definitions for DBCHQEP, provided for each program language, are located as shown below:
230
For this language...
Definitions for DBCHQEP are located in the. . .
IBM Assembler
DBCHQEP in library SAMPLIB (z/OS).
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 5: Release Tapes
Finding Files on the Release Tape
For this language...
Definitions for DBCHQEP are located in the. . .
C
DBCHQEPH in library SAMPLIB (z/OS).
COBOL
DBCHQEPC in library SAMPLIB (z/OS).
PL/I
DBCHQEPP in library SAMPLIB (z/OS).
DBCHQER
Definitions for DBCHQER (Query Results), provided for each programming language, are
located as shown below:
For this language...
Definitions for DBCHQER are located in the. . .
IBM Assembler
DBCHQER in library SAMPLIB (z/OS).
C
DBCHQERH in library SAMPLIB (z/OS).
COBOL
DBCHQERC, DBCHQACC, and DBCHQAMC in library SAMPLIB
(z/OS).
DBCHQACC maps the Available-character-sets query response;
DBCHQAMC maps the Available-logon-mechanism query response;
DBCHQERC maps all other query responses.
PL/I
DBCHQERP in library SAMPLIB (z/OS).
DBCHUEP
Definitions for DBCHUEP (DBCHUE parameters), provided for each programming
language, are located as shown below:
For this language...
Definitions for DBCHUEP are located in the. . .
IBM Assembler
DBCHUEP in library SAMPLIB (z/OS).
C
DBCHUEPH in library SAMPLIB (z/OS).
COBOL
DBCHUEPC in library SAMPLIB (z/OS).
PL/I
DBCHUEPP in library SAMPLIB (z/OS).
HSHSPB
Definitions for HSHSPB are located in library SAMPLIB (z/OS).
Caution:
Because the DBCAREA and the DBCAIRX may be revised from time to time, we strongly
recommend that you use them as provided on the release tape. If you prefer another name for
a field, redefine or “equivalence” the release version.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
231
Chapter 5: Release Tapes
System Parameter Block
TRDSPB
Definitions for TRDSPB, provided in each programming language, are located as shown
below:
For this language...
Definitions for TRDSPB are located in the. . .
IBM Assembler
TRDSPB in library SAMPLIB (z/OS).
TC2XPH
Definitions for TC2XPH, provided in each programming language, are located as shown
below:
For this language...
Definitions for TC2XPH are located in the. . .
IBM Assembler
TC2XPH in library SAMPLIB (z/OS).
C
TC2XPHH in library SAMPLIB (z/OS).
COBOL
TC2XPHC in library SAMPLIB (z/OS).
PL/I
TC2XPHP in library SAMPLIB (z/OS).
TRD0LENU
The Message Definitions file for United States English is named TRD0LENU; it is provided on
a release tape.
The Assembler file for TRD0LENU is on the z/OS release tape as member CL2ASSEM.
No action is required to use this file for messages in United States English. The file is provided
to be used as the basis for creation of message definitions in other languages. Refer to
Chapter 14: “Message Definitions,” for details.
System Parameter Block
Default Values
Depending on your programming environment, you use one of two possible data structures
(HSHSPB or HSHSPBC) to pass default values to DBCHINI.
232
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 5: Release Tapes
HSHSPB
In this programming
environment...
The name for the data
structure containing default
values to pass to DBCHINI
is...
z/OS batch
HSHSPB
The accessible default for applications
running in the named environments.
HSHSPBC
A block containing information to
manage globally CLIv2 memory usage.
z/OS TSO
Description
IMS/DC
CICS/VS
CICS
Used only under CICS.
As provided on the release tape or disks, the accessible structures contain defaults
recommended for typical installations running under the given operating system.
Managers responsible for overall operations at the site may change the defaults to reflect
conditions appropriate for the site.
The revised defaults are placed in the DBCAREA when an application calls DBCHINI.
Overriding the Defaults from an Application
In general, application programmers can override the defaults in the DBCAREA in order to
reflect conditions appropriate for the application.
The application does not directly access the HSHSPB.
The settings in the DBCAREA after calling DBCHINI are copies of the values contained in the
HSHSPB and can be modified by the program.
CLIv2 must be able to get defaults from the accessible HSHSPB. The program will fail if the
HSHSPB is not available.
HSHSPB
Where to Find HSHSPB
The HSHSPB is provided on the release tape for IBM mainframe clients.
Administration
The HSHSPB data area module is assembled by the site manager at installation.
HSHSPB can be placed in the CLIv2 runtime library, or it can be included in the application.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
233
Chapter 5: Release Tapes
HSHSPB Assembler Source
Under this operating
system...
The application can
include HSHSPB at...
If HSHSPB is...
z/OS
link time
in STEPLIB/JOBLIB/LINKLIST
Under z/OS, if HSHSPB has not been included earlier, CLIv2 will LOAD it at runtime.
The values in HSHSPB are copied to the DBCAREA when the application calls DBCHINI.
Changing Options Arguments
The application may specify values in the DBCAREA for the various option arguments before
calling DBCHCL for these functions:
•
Connect
•
RunStartUp
•
Command
•
Initiate with Protocol-Function
•
Initiate Request
The program indicates to CLIv2 that changes to the options are to be honored by setting the
value of Change Options to ‘Y‘ in the DBCAREA.
Any legal values of processing options are used by DBCHCL, and any blank values of
processing options default to the installation-specified values from the HSHSPB.
HSHSPB Assembler Source
Introduction
The HSHSPB allows default values to be specified for some DBCAREA fields. These defaults
will be used by applications that do not explicitly specify a value for those DBCAREA fields. If
an application does specify a value, that HSHSPB default will be ignored.
If a default value is changed, the HSHSPB must be assembled and link-edited. The resulting
load module will be used by any application with the resulting load module in its search order
at execution time. Any number of HSHSPBs may exist, but since all have the same module
name, only one will be used for a particular execution of any application.
The default for the following values can be safely changed for any application:
Table 6: HSHSPB Source Default Settings That Are Safe to Change
234
Keyword
Default
Description
MVSTDP
'TDP0'
The default for the Input-TDP-path (DBCNITDP) value when
executing under z/OS, chosen as an EBCDIC four-character value
beginning with TDP.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 5: Release Tapes
HSHSPB Assembler Source
Table 6: HSHSPB Source Default Settings That Are Safe to Change (continued)
Keyword
Default
Description
IBODLYW
'Y'
The default for the Wait-during-delay (DBODLYN) option, chosen as
either 'Y' or 'N'.
(The deprecated keyword IBOCRSW is equivalent to IBODLYN.)
IBOFSVB
'Y'
The default for the Save-response-buffer (DBOFSVB) option, chosen as
either 'Y' or 'N'.
IBO2FBU
'Y'
The default for the Two-response-buffers (DBO2FBU) option, chosen
as either 'Y' or 'N'.
IBORTS
'N'
The default for the return-time (DBORTS) option, chosen as either 'Y'
or 'N'.
IBCSMAX
16
The default for the Anticipated-number-of-concurrent-sessions
(DBCISMAX) value, chosen as a value between 1 and 999.
IBCRBRL
1024
The default for the Request-buffer-length (DBCIRBRL) value, chosen
as a value between 256 and 2147483639.
IBCFBRL
1024
The default for the Response-buffer-length (DBCIFBRL) value, chosen
as a value between 256 and 32767, 65535, or 2147483639. The actual
maximum depends upon the setting of the Maximum-parcel option.
IBODEN
'N'
The default for the Data-encryption (DBRIDEN) option, chosen as
either 'Y' or 'N'.
'N'
The default for the Refresh-cached-data (DBRIRCD) option, chosen as
either 'Y' or 'N'.
IBORPF
'D'
The default for the Request-parcel-format (DBRIRPF) option, chosen
as either 'A' or 'O'.
(The deprecated value 'D' is now equivalent to 'A'.)
IBOTRAK
'N'
For diagnostic use under the direction of Teradata Support personnel,
the status of internal CLIv2 tracking, chosen as either 'N', 'I', 'E', or 'A'.
IBOTRPG
0
For diagnostic use under the direction of Teradata Support personnel,
the number of 4096byte areas to be used for internal CLIv2 tracking,
chosen as a value from 0 to 255.
IBOTRCM
'00000000'
For diagnostic use under the direction of Teradata Support personnel,
the component mask for CLIv2 internal tracking, chosen as an eight
character hexadecimal value.
DUI
'N'
The default for the Delegate-user-identity value, chosen as either 'N' or
'Y'.
RCD
The default for the following values can be changed for any application, but depending on the
design of the application may result in errors indicated by the Teradata Database when the
application is executed.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
235
Chapter 5: Release Tapes
HSHSPB Assembler Source
Table 7: HSHSPB Source Default Settings That Should Probably Not Be Changed
Keyword
Default
Description
IBOKRSP
'N'
The default for the Keep-response (DBCNITSM) option, chosen as
either 'Y', 'N', or 'P'.
IBOSCS
(No default
provided)
The default for the Set-character-set (DBOSCSP) option, chosen as
either null or 'N'. The name of the character set is given by the IBCCSN
keyword.
(The deprecated value 'C' should not be used).
IBCCSN
(No default
provided)
If the Set-character-set (DBOSCSP) option is 'Y', the default for the
Character set name, chosen as one of the defined EBCDIC one to thirty
character values.
(The IBCCSC keyword is deprecated and should not be used.)
IBOTSM
'D'
The default for the Transaction-semantics (DBCNITSM) option,
chosen as either 'D', 'A', or 'T'.
IBOLCS
'N'
The default for the Language-conformance (DBCNILCS) option,
chosen as either 'N', '2', or '3'.
IBOC2SC
'D'
The default for the C2S-conversion (DBCIC2SC) option, chosen as
either 'R', 'I', or 'D'.
IBOC2SCC
'D'
The default for the S2C-conversion (DBCIS2CC) option, chosen as
either 'R', 'I', or 'D'.
IBODF
'D'
The default for the Date-form (DBCNIDF) option, chosen as either 'D',
'T', or 'A'.
LANG
'EN'
The default for the Language-id (DBCNILID) value, chosen as one of
the defined EBCDIC two-character values.
COUNTRY
(No default
provided)
The default for the Country-id (DBCNICID) value, chosen as null or
one of the defined EBCDIC two-character values.
RR
(No default
provided
The default for the Return-result-to value, chosen as either 1, 2, 3, 4, or
5.
RSO
'N'
The default for the Result-sets-OK value, chosen as either 'N' or 'Y'.
TSP
'8'
The default for the Timing-precision (DBCITSP) value, chosen as a
value between 0 and 20.
CIN
'O'
The default for the Column-info value, chosen as either 'O' or 'E'.
IBOS2CC
The default for the following values should never be changed without a detailed analysis of the
design of every affected application (that is, an application will very likely exhibit
programming errors if these defaults are changed). Defaults for these should not have been
provided but are maintained for compatibility:
236
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 5: Release Tapes
HSHSPB Assembler Source
Table 8: HSHSPB Source Default Settings That Should Never Be Changed
Keyword
Default
Description
IBORMOD
'R'
The default for the Response-mode (DBORMOD) option, chosen as
either 'F', 'R', 'M', 'I' or 'X'.
IBOIDTA
'N'
The default for the Use-presence (DBOIDTA) option, chosen as either
'Y' or 'N'.
IBODLYT
'Y'
The default for the Tell-if-delay (DBODLYT) option, chosen as either
'Y' or 'N'. (The deprecated keyword IBOCRTL is equivalent to
IBODLYT.)
IBOFLOC
'Y'
The default for the Locate-mode (DBOFLOC) option, chosen as either
'Y' or 'N'.
IBORVAR
'N'
The default for the Variable-length-request (DBORVAR) option,
chosen as either 'Y' or 'N'.
IBOFVAR
'N'
The default for the Variable-length-fetch (DBOFVAR) option, chosen
as either 'Y' or 'N'.
IBOBSYW
'Y'
The default for the Wait-for-response (DBOBSYW) option, chosen as
either 'Y' or 'N'
IBOBTPM
'Y'
The default for the Parcel-mode-fetch (DBOBTPM) option, chosen as
either 'Y' or 'N'.
IBOFUNT
'E'
The default for the Request-processing-option (DBOFUNT) option,
chosen as either 'E', 'P', 'S', or 'B'.
IBOQMOD
'P'
The default for the Request-mode (DBOQMOD) option, chosen as
either 'P' or 'B'
IBOCTYP
'R'
The default for the Connect-type (DBOCTYPE) value, chosen as either
'R' or 'C'.
IBO2PC
'N'
The default for the 2PC (DBO2PC) option, chosen as either 'Y' or 'N'.
IBOMP
'O'
The default for the Maximum-parcel (DBCIMP) option, chosen as
either 'O' or 'H'
IBOROB
'D'
The default for the Return-objects-as (DBRIROB) option, chosen as
either 'D', 'T', or 'S'.
IBOAPH
'N'
The default for the APH-response-OK (DBRIAPH) option, chosen as
either 'Y' or 'N'.
MDR
0
The default for the Max-decimal-returned (DBRIMDR) option, chosen
as any value not greater than the decimal precision value obtained using
the DBCHQE SQL-limits query. A zero is equivalent to the client
default, 18.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
237
Chapter 5: Release Tapes
HSHSPB Assembler Source
238
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
CHAPTER 6
Common Routines
This chapter describes the three always-used CLIv2 routines. They are:
•
DBCHINI
•
DBCHCL, including its functions:
•
•
DBCHCL CON Function
•
DBCHCL RSUP Function
•
DBCHCL IRQ Function
•
DBCHCL IWPF Function
•
DBCHCL CRQ Function
•
DBCHCL CMD Function
•
DBCHCL ABT Function
•
DBCHCL FET Function
•
DBCHCL REW Function
•
DBCHCL ERQ Function
•
DBCHCL DSC Function
DBCHCLN
Other CLIv2 routines are described in:
•
Chapter 7: “Other CLIv2 Routines”
•
Chapter 8: “CLIv2 Query Routine”
Introduction
CLIv2 routines are used in the following circumstances:
•
When no preprocessor exists for the application language
•
When the application must use Teradata Database facilities not supported by the
preprocessors
Standard OS linkage conventions are required by the CLIv2 routines. The following CLIv2
routines reside in the CLIv2 library.
The functions used with DBCHCL are described sequentially under DBCHCL.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
239
Chapter 6: Common Routines
Uses of CLIv2 Parameters: Tabular Summary
Uses of CLIv2 Parameters: Tabular Summary
The following table lists the use of three most common CLIv2 routines and describes how
they are used.
Table 9: Uses of Routine and Function
Routine
Description
DBCHINI
What
Initializes the application allocated DBCAREA.
Why
Prepares for interaction with CLIv2.
What
Manages interaction with the Teradata Database; each type of interaction is called a
function
Why
Sends/receives Teradata SQL requests/responses to/from the Teradata Database.
DBCHCL
DBCHCLN
240
Function
Name
What It Represents
Use
CON
Connect
Logs a session on to the Teradata Database and
specifies a set of services
RSUP
RunStartUp
Submits a request to execute the startup request
stored on the Teradata Database
IRQ
Initiate Request
Submits a Teradata SQL request from the
application
IWPF
Initiate With
Protocol-Function
Submits a Teradata SQL request from the
application and allows Teradata Database 2PC
sync point performance optimization
CRQ
Continue Request
Provides data requested by the Teradata Database
to complete an SQL request.
CMD
Command
Issues a TDP command within a CLIv2 program
ABT
Abort
Aborts a request asynchronously
FET
Fetch
Makes available the next parcel or buffer (which
one depends on the setting of Parcel Mode) of the
Teradata SQL response
REW
Rewind
Repositions to start of Teradata SQL response
(spool file)
ERQ
End Request
Closes a Teradata SQL request and has the
Teradata Database discard the response
DSC
Disconnect
Logs off and deletes a session
What
Logs off all sessions and releases the internal CLIv2 memory areas allocated by DBCHINI
Why
To clean up after interacting with the Teradata Database
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 6: Common Routines
Summary of CLIv2 Routine Parameters
Summary of CLIv2 Routine Parameters
The following table lists the parameters for the routines in this chapter
Table 10: Parameters of CLIv2 Routines
Routine
Parameters
DBCHINI
ReturnCode Address
ContextArea Address
DBCAREA Address
DBCHCL
ReturnCode Address
ContextArea Address
DBCAREA Address
DBCHCLN
ReturnCode Address
ContextArea Address
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
241
Chapter 6: Common Routines
DBCHINI
DBCHINI
Purpose
Sets up the CLIv2 environment.
The application must provide the DBCAREA and then call DBCHINI to initialize it.
Note: The alternate six-character name for DBCHINI is DBCHIN.
Interface
This routine is called with the following parameters, stylistically presented (the actual syntax
varies according to the programming language being used):
DBCHINI(ReturnCode,ContextArea,DBCAREA)
In high-level languages, the details of the parameter list are handled by the compiler. For
Assembler, the parameter list consists of contiguous 4 byte entries, each containing the 31 bit
address of a parameter. The last address has the first bit set to one to indicate the end of the
list.
The parameters for this routine are:
Argument
Content
ReturnCode
A 4 byte unsigned integer field into which the return code will be placed by
CLIv2.
ContextArea
A 4 byte unsigned integer field for internal use by CLIv2.
DBCAREA
The DBCAREA structure.
Usage Notes
242
•
The application must declare or allocate the DBCAREA and call DBCHINI to initialize the
fields prior to using CLIv2 functions.
•
Total Length must be filled in by the application before calling DBCHINI. DBCHINI
verifies this value prior to any initialization attempt. The length must be at least 384, the
size of the smallest DBCAREA. If the length is at least 640, the enlarged DBCAREA will be
formatted. For lengths greater than 384 but not equal to 640, the excess is assumed to be
an application appendage to the DBCAREA: it will be zeroed by DBCHINI but is
otherwise unused by CLIv2. When not appending fields to the DBCAREA, mnemonics
should be used to set the Total-length field to the largest DBCAREA. When appending
fields to the DBCAREA, depending on the application development environment it may
be better to use hardcoded values rather than mnemonics. For example, if the total size of
the DBCAREA plus application fields must be less than some size, it might be unwise to
allow the DBCAREA size to increase.
•
DBCHINI obtains default values from the HSHSPB currently available to the application.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 6: Common Routines
DBCHINI
•
The return code will either be 0 (if the initialization is completed successfully) or 126 if the
Total Length value is insufficient for the smallest DBCAREA (384 bytes). After the call, the
return code variable contains a return code.
•
After the call, CLIv2 changes ContextArea for its own purposes.
•
DBCHINI initializes the DBCAREA allocated by the application. DBCHINI does not
initialize any DBCAREA extensions addressed by the DBCAXP DBCAREA field.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
243
Chapter 6: Common Routines
DBCHCL
DBCHCL
Purpose
Calls the functions to be used by the application.
An overview of the functions relative to DBCHCL is given in the first table in the section
“Summary of CLIv2 Routine Parameters” on page 241. Each function is described in detail
later in this chapter.
Process
Before each call to DBCHCL, the application modifies the DBCAREA to specify the action
requested and to fill in the input fields relevant to that action. DBCHCL carries out the
function specified by the function code in the DBCAREA, then passes back to the caller the
DBCAREA, which contains, among other things, a return code. The application checks the
return code in the DBCAREA, which is where CLIv2 and TDP indicate any problem they find.
If the call results in a delivery of parcels to the response buffer, the program checks the first
parcel, which may be one of the following:
•
Success
•
Error
•
Failure
Interface
This routine is called with the following parameters, stylistically presented (the actual syntax
varies according to the programming language being used):
DBCHCL(ReturnCode,ContextArea,DBCAREA)
In high-level languages, the details of the parameter list are handled by the compiler. For
Assembler, the parameter list consists of contiguous 4 byte entries, each containing the 31 bit
address of a parameter. The last address has the first bit set to one to indicate the end of the
list.
The parameters for this routine are:
244
Argument
Content
ReturnCode
A 4 byte unsigned integer field into which the return code will be placed by
CLIv2.
ContextArea
A 4 byte unsigned integer field for internal use by CLIv2.
DBCAREA
The DBCAREA structure.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 6: Common Routines
DBCHCL
Usage Notes
•
Before DBCHCL is called, the application must have called DBCHINI to initialize the
DBCAREA to be used by DBCHCL.
•
After the call, CLIv2 will change ContextArea for its own purposes.
•
The DBCAREA address must always be passed to DBCHCL.
•
•
•
In addition, the function code must be supplied.
•
Other fields in the DBCAREA must be set as appropriate to the function requested.
If Wait for Response is set to N (set and used by the Connect, Initiate Request, Command,
Initiate with Protocol, and RunStartUp functions; used by the Fetch, Abort, Rewind, End
Request, and Disconnect functions) and CLIv2 is waiting for a response from the Teradata
Database, the application will receive a return code of 150 (busy).
•
The application may handle the busy response by calling routine DBCHWAT and
waiting for control to return to the application.
•
If the return code is 0, resubmit the DBCHCL function that initially returned the busy
indication.
If Return Code is nonzero for any function, the Message Length and Message Text fields of
the DBCAREA will be set.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
245
Chapter 6: Common Routines
DBCHCL Functions
DBCHCL Functions
This section describes the DBCHCL functions listed below.
Function Name
Description
CON
Connect
RSUP
RunStartUp Request
IRQ
Initiate Request
IWPF
Initiate With Protocol-Function
CRQ
Continue Request
CMD
Command
ABT
Abort
FET
Fetch
REW
Rewind and Fetch
ERQ
End Request
DSC
Disconnect
General Notes
For each function, there is a list of the required and optional input and output arguments and
a general description of how DBCHCL processes the function.
The interpretation of some of the arguments may depend on the setting of the DBCAREA
options (for more information, see “Setting DBCAREA Options” on page 48.
For instance, input/output string pointers may be variable strings. For output strings,
DBCHCL will provide an address and length if Locate mode is in effect; otherwise, DBCHCL
expects that the application has set the address of the area to which DBCHCL is to move the
string.
If DBCHCL detects an error while processing, various fields will be set to help the user
interpret and handle the error.
246
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 6: Common Routines
DBCHCL CON Function
DBCHCL CON Function
Purpose
CON (Connect) logs on to the Teradata Database and arranges to have the specified services
available for all requests on that session.
Connect also allocates internal control structures that CLIv2 uses to store session context.
Usage Notes
•
If no Logon String is supplied or logon mechanism, a TDP logon exit must furnish the
necessary information to complete the logon request. If a TDP logon exit does not exist or
is disabled, the connect will be rejected by TDP.
•
The application should call the ERQ function after processing the CON function,
regardless of the success or failure of the connect. This releases internal resources used
during connect processing.
•
DSC must be performed for each CON request. If the CON results in a nonzero return
code, DSC should be called immediately. Otherwise, DSC should be called when the
application has completed all work for the session.
•
If Return Code is 0, the application must invoke the FET function to obtain the final status
of the connect call.
•
•
•
If Connect Type was R, the FET call results in a Return Code of 33 if the connect was
successful.
•
If Connect Type was C, the parcels must be processed to determine success or failure
of the connect.
The FET returns three additional DBCAREA fields set only when CON is being processed.
These fields are:
•
Output TDP Path
•
Output TDP Session Id
•
Output Host Id.
Additional fields will be set as normal by the FET call.
For a discussion of the call and the fields used, see “DBCHCL FET Function” on page 265.
DBCAREA Input Fields
Before using the Connect function, the application must set the DBCAREA fields in the first
table and may optionally set those in the second table depending on the application's
requirements.
Table 11: DBCAREA Input Fields Required for the Connect Function
DBCAREA Input Fields Required for the Connect Function
Function
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
247
Chapter 6: Common Routines
DBCHCL CON Function
Table 12: DBCAREA Input Fields Optional for the Connect Function
DBCAREA Input Fields Optional for the Connect Function
2PC
Anticipated Number of Concurrent Sessions
Change Options
Character Set Pointer
Connect Type
Country Id
C2S Conversion
Data-encryption
Date Form
Delegate-user-identity
Input TDP Path
Keep Response
Language Conformance
Language Id
Locate Mode
Logon Length
Mechanism-data-encoding
Mechanism-data-len
Mechanism-data-ptr
Mechanism-name
Logon Pointer
Maximum Parcel
Message Area Pointer
Message Area Length
Parcel Mode
Request Buffer Length
Request Processing Option
Response Buffer Length
Response Mode
Request Mode
Request-parcel-format
Request-token
Return Time
Run Length
Run Pointer
Save Response Buffer
Session-desc-length
Session-desc-pointer
Set Character Set
Statement-status
S2C Conversion
Tell if Delay
Transaction Semantics
Two Response Buffers
Use-default-conn
Use Presence Bits
Utility-workload
Variable Length Fetch
Variable Length Request
Wait During Delay
Wait-exclusion
Wait For Response
Workload-length
Workload-pointer
DBCAREA Output Fields
Upon completion of the Connect function, CLIv2 will always set DBCAREA fields
in the first table and will set those in the second table if the function was successful.
248
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 6: Common Routines
DBCHCL CON Function
Table 13: DBCAREA Output Fields Always Set for the Connect Functions
DBCAREA Output Fields Always Set for the Connect Functions
Message Return Code
Message Length
Message Text
Message Text Length
Current Response Buffer Length
Output CLIv2 Request Id
Output CLIv2 Connection Id
Return Code
Table 14: DBCAREA Output Fields Set by Successful Connect Functions
DBCAREA Output Fields Set by Successful Connect Functions
Current Request Buffer Length
Mechanism-name
Open Requests
Session Status
TDP Request Number
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
249
Chapter 6: Common Routines
DBCHCL RSUP Function
DBCHCL RSUP Function
Purpose
RSUP (RunStartUp) sends a request to the Teradata Database to execute the startup request
stored on the Teradata Database.
Usage Notes
•
The application should call the ERQ function after processing RunStartUp, regardless of
the success or failure of the startup. This will release internal resources used during startup
processing.
•
If RunStartUp is called without first calling Connect, RunStartUp will perform the
Connect. In this case, the information needed for a Connect call should be supplied when
doing the RunStartUp call.
•
If Return Code is 0, the application must invoke the FET function to process the response.
DBCAREA Input Fields
Before using the Run Start-up function, the application must set the DBCAREA fields in the
first table and may optionally set those in the second table depending on the application's
requirements.
Table 15: DBCAREA Input Fields Required for the RunStartup Function
DBCAREA Input Fields Required for the RunStartup Function
Function
Input CLIv2 Connection Id
Table 16: DBCAREA Output Fields Optional for the RunStartup Function
DBCAREA Output Fields Optional for the RunStartup Function
250
Anticipated Number of Concurrent Sessions
APH-response-OK
Change Options
Column-info
C2S Conversion
Continued-character-state
Data-encryption
Input TDP Path
Keep Response
Locate Mode
Logon Length
Logon Pointer
Max-decimal-returned
Maximum Parcel
Parcel Mode
Period-as-Struct
Refresh-cached-data
Request Buffer Length
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 6: Common Routines
DBCHCL RSUP Function
Table 16: DBCAREA Output Fields Optional for the RunStartup Function (continued)
DBCAREA Output Fields Optional for the RunStartup Function
Request-parcel-format
Request Processing Option
Request-token
Response Buffer Length
Response Mode
Return Time
Return-identity-data
Result-sets-OK
Return-result-to
Return-statement-info
Run Length
Run Pointer
Save Response Buffer
S2C Conversion
Tell if Delay
Transforms-off
Trusted-requestf
Two Response Buffers
Use Presence Bits
Variable Length Request
Variable Length Fetch
Wait During Delay
Wait-exclusion
Wait For Response
DBCAREA Output Fields
Upon completion of the Run Start-up function, CLIv2 will always set DBCAREA fields in the
first table and will set those in the second table if the function was successful.
Table 17: DBCAREA Output Fields Always Set by the RunStartup Function
DBCAREA Output Fields Always Set by the RunStartup Function
Current Response Buffer Length
Message Return Code
Message Text
Message Text Length
Output CLIv2 Request Id
Return Code
Table 18: DBCAREA Output Fields Set by Successful RunStartup Functions
DBCAREA Output Fields Set by Successful RunStartup Functions
Current Request Buffer Length
Message Return Code
Message Text
Message Text Length
Open Requests
TDP Request Number
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
251
Chapter 6: Common Routines
DBCHCL IRQ Function
DBCHCL IRQ Function
Purpose
IRQ (Initiate Request) sends a request to the Teradata Database to be processed.
Usage Notes
•
If Initiate Request is called without first calling CON, Initiate Request performs the CON.
In this case, the information needed for a CON call should be supplied when doing the
Initiate Request call.
•
If Return Code is 0, the application must invoke the FET function to process the response.
Once the response has been totally processed, the application must invoke the ERQ
function to release resources used by the Initiate Request.
•
When initiating a request in a 2PC session, Initiate Request will be rejected if the session
has a 2PC vote or terminate activity in progress.
•
Once started, activities such as vote and terminate must be completed by the
coordinator.
•
The vote can result from a previous Initiate with Protocol-Function (IWPF) function.
•
The terminate could have resulted from an Abort or Logoff or from any response that
contained a Failure parcel.
•
If any of these occur, the coordinator must be requested to perform a syncpoint.
DBCAREA Input Fields
Before using the Initiate Request function, the application must set the DBCAREA fields in
the first table and may optionally set those in the second table depending on the application's
requirements.
Table 19: DBCAREA Input Fields Required for the Initiate Request Function
DBCAREA Input Fields Required for the Initiate Request Function
Function
Input CLIv2 Connection Id
Request Length
Request Pointer
Table 20: DBCAREA Input Fields Optional for the Initiate Request Function
DBCAREA Input Fields Optional for the Initiate Request Function
252
Anticipated Number of Concurrent Sessions
APH-response-OK
Change Options
Character Set
C2S Conversion
Column-info
Continued-character-state
Data-encryption
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 6: Common Routines
DBCHCL IRQ Function
Table 20: DBCAREA Input Fields Optional for the Initiate Request Function (continued)
DBCAREA Input Fields Optional for the Initiate Request Function
Extension Pointer
Input TDP Path
Keep Response
Locate Mode
Logon Length
Logon Pointer
Max-decimal-returned
Maximum Parcel
Message Area Length
Message Area Pointer
Parcel Mode
Period-as-Struct
Pointer
Refresh-cached-data
Request Buffer Length
Request Mode
Request-parcel-format
Request Processing Option
Request-token
Response Buffer Length
Response Mode
Result-sets-OK
Return-identity-data
Return-result-to
Return-statement-info
Return Time
Run Length
Run Pointer
Save Response Buffer
Session Id
Set Character Set
Statement-status
S2C Conversion
Tell if Delay
Transforms-off
Trusted-requestf
Two Response Buffers
Using Data Pointer
Using Data Length
Use Presence Bits
Variable Length Fetch
Variable Length Request
Wait During Delay
Wait-exclusion
Wait For Response
DBCAREA Output Fields
Upon completion of the Initiate Request function, CLIv2 will always set DBCAREA fields in
the first table and will set those in the second table if the function was successful.
DBCAREA Output Fields always set by the Initiate Request Function
Current Response Buffer Length
Message Return Code
Message Text
Message Text Length
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
253
Chapter 6: Common Routines
DBCHCL IRQ Function
DBCAREA Output Fields always set by the Initiate Request Function
Output CLIv2 Request Id
Return Code
DBCAREA Output Fields set by Successful Initiate Request Functions
Current Request Buffer Length
Open Requests
TDP Request Number
254
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 6: Common Routines
DBCHCL IWPF Function
DBCHCL IWPF Function
Purpose
IWPF (Initiate with Protocol-Function) enables an application to send a request to the
Teradata Database.
It contains additional protocol functions for 2PC sessions, for use in specialized applications.
Note: This function can not be used when ANSI transaction semantics are enabled.
Usage Notes
•
A 2PC request can be initiated using the Initiate with Protocol-Function.
•
The IWPF function is similar to the Initiate Request (Initiate Request) function, except for
the following differences:
•
•
IWPF does not support the Locate mode.
•
When IWPF is used with 2PC sessions, the additional protocol functions of vote, and
vote and terminate can be used to optimize syncpoint processing in specialized
applications.
In IWPF, you can set the following:
Code
Meaning
N
No protocol function.
This is the default.
V
Vote protocol function to be appended.
T
Vote & Terminate protocol function to be appended.
DBCAREA Input Fields
Before using the Initiate With Protocol-function function, the application must set the
DBCAREA fields in the first table and may optionally set those in the second table depending
on the application's requirements.
Table 21: DBCAREA Input Fields Required for Initiate With Protocol-function
DBCAREA Input Fields Required for the Initiate With Protocol-function Function
Function
Input CLIv2 Connection Id
Request Length
Request Pointer
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
255
Chapter 6: Common Routines
DBCHCL IWPF Function
Table 22: DBCAREA Input Fields Optional for Initiate With Protocol-function
DBCAREA Input Fields Optional for the Initiate With Protocol-function Function
Anticipated Number of Concurrent Sessions
APH-response-OK
Change Options
Character Set
C2S Conversion
Column-info
Continued-character-state
Extension Pointer
Input TDP Path
Keep Response
Length
Logon Length
Logon Pointer
Max-decimal-returned
Maximum Parcel
Message Area Length
Message Area Pointer
Parcel Mode
Period-as-Struct
Pointer
Protocol Function
Refresh-cached-data
Request Buffer Length
Request Mode
Request-parcel-format
Request Processing Option
Request-token
Response Buffer
Response Mode
Result-sets-OK
Return-identity-data
Return-result-to
Return-statement-info
Return Time
Run Length
Run Pointer
Save Response Buffer
Session Id
Set Character Set
Statement-status
S2C Conversion
Tell if Delay
Transforms-off
Trusted-requestf
Two Response Buffers
Using Data Length
Using Data Pointer
Use Presence Bits
Variable Length Fetch
Variable Length Request
Wait During Delay
Wait-exclusion
Wait For Response
256
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 6: Common Routines
DBCHCL IWPF Function
DBCAREA Output Fields
Upon completion of the Initiate With Protocol-function function, CLIv2 will always set
DBCAREA fields in the first table and will set those in the second table if the function was
successful.
Table 23: DBCAREA Output Fields always set by Initiate With Protocol-function
DBCAREA Output Fields always set by the Initiate With Protocol-function Function
Message Return Code
Current Response Buffer Length
Message Length
Message Text
Message Text Length
Output CLIv2 Request Id
Return Code
Table 24: DBCAREA Output Fields Set by Successful Initiate With Protocol-function
DBCAREA Output Fields set by Successful Initiate With Protocol-function Functions
Current Request Buffer Length
Open Requests
TDP Request Number
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
257
Chapter 6: Common Routines
DBCHCL CRQ Function
DBCHCL CRQ Function
Purpose
CRQ (Continue Request) sends data requested by the Teradata Database to complete an SQL
request. The need for such completion must be indicated by one of the following SQL
requests:
•
A USING row descriptor that specifies CLOB or BLOB AS DEFERRED. The result is an
ElicitData parcel in the response that contains the token specified as the Using-data for the
AS DEFERRED field.
•
A CREATE or REPLACE for an executable item, such as FUNCTION, that specifies the
EXTERNAL NAME clause. The result is one of the following:
•
An ElicitFile parcel that contains the filename specified by the EXTERNAL clause.
•
An ElicitName parcel in the response which contains the name specified in the BY
NAME phrase.
When either parcel is received, the application then sends data to complete the SQL request
using the ContinueRequest function.
Usage Notes
The application should call the CRQ function after processing an ElicitData or ElicitFile
response parcel. If return Code is zero, the application must invoke the FET function to
process the response. If more data exists, these steps are repeated as many times as necessary.
DBCAREA Input Fields
Before using the Continue Request function, the application must set the DBCAREA fields in
the first table and may optionally set those in the second table depending on the application's
requirements.
Table 25: DBCAREA Input Fields Required for the Continue Request Function
DBCAREA Input Fields Required for the Continue Request Function
Continued-data
Function
Input CLIv2 Connection Id
Input CLIv2 Request Id
Request Length
Request Pointer
When processing an ElicitData parcel, the Request-pointer addresses data for the Large Object
(LOB). The LOB begins with an 8-byte unsigned integer that contains the length, in bytes, of
the data. If the length is not known when the start of the LOB is sent, the length field might be
zero.
When processing an executable item, the Request-pointer addresses its statements, which do
not begin with a length field.
258
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 6: Common Routines
DBCHCL CRQ Function
Table 26: DBCAREA Input Fields Optional for the Continue Request Function
DBCAREA Input Fields Optional for the Continue Request Function
Change Options
C2S Conversion
Fetch Buffer Length
Locate Mode
Maximum Parcel
Message Area Length
Message Area Pointer
DBCAREA Output Fields
Upon completion of the Continue Request function, CLIv2 will always set DBCAREA fields in
the first table and will set those in the second table if the function was successful.
Table 27: DBCAREA Output Fields always set by the Continue Request Function
DBCAREA Output Fields always set by the Continue Request Function
Message Length
Message Return Code
Message Return Code
Message Text
Message Text Length
Message Return Code
Return Code
Table 28: DBCAREA Output Fields set by Successful Continue Request Functions
DBCAREA Output Fields set by Successful Continue Request Functions
Current Request Buffer Length
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Current Response Buffer Length
259
Chapter 6: Common Routines
DBCHCL CMD Function
DBCHCL CMD Function
Purpose
CMD (Command) issues a TDP command within a CLIv2 program.
This function is used to send the TDP command, specifying a buffer and length that contain
the command text.
Usage Notes
•
Use the CMD function to send a TDP command, specifying a buffer and length for the
command text.
•
If the Return Code is 0, a pseudo-connection number and a request number are returned.
To process the response, issue a FETch function with the returned pseudo-connection
number and request number.
The response data is composed of various parcels in the following order:
1
A Success parcel with an activity count that indicates the number of subsequent Record
parcels
2
The Record parcels themselves (one Record parcel for each line of command output)
3
An End Statement parcel
4
An End Request parcel
•
Once the response has been completely processed, the application must invoke the ERQ
function to release the fetch buffer used by the CMD.
Since the application doesn‘t establish a connection, no DISCONN function may be used
for the pseudo-connection number. Rewind and Abort functions are not supported.
If the specified response buffer is too small for the entire response, a code of 535 is
returned, either as a warning code in the Success parcel or as a return code from the CLIv2
call.
DBCAREA Input Fields
Before using the Command function, the application must set the DBCAREA fields in the first
table and may optionally set those in the second table depending on the application's
requirements.
Table 29: DBCAREA Input Fields Required for the Command Function
DBCAREA Input Fields Required for the Command Function
Function
260
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 6: Common Routines
DBCHCL CMD Function
Table 30: DBCAREA Input Fields Optional for the Command Function
DBCAREA Input Fields Optional for the Command Function
Anticipated Number of Concurrent Sessions
Change Options
Character Set
Input TDP Path
Length
Locate Mode
Maximum Parcel
Message Area Length
Message Area Pointer
Parcel Mode
Pointer
Request Buffer
Request Length
Request Mode
Request Pointer
Request Processing Option
Response Buffer Length
Response Mode
Return Time
Set Character Set
Tell if Delay
Request-token
Two Response Buffers
Use Presence Bits
Variable Length Fetch
Variable Length Request
Wait During Delay
Wait-exclusion
Wait For Response
DBCAREA Output Fields
Upon completion of the Command function, CLIv2 will always set DBCAREA fields in the
first table and will set those in the second table if the function was successful.
Table 31: DBCAREA Output Fields always set by the Command Function
DBCAREA Output Fields always set by the Command Function
Current Response Buffer Length
Message Length
Message Return Code
Message Text
Message Text Length
Output CLIv2 Request Id
Output CLIv2 Connection Id
Return Code
Table 32: DBCAREA Output Fields set by Successful Command Functions
DBCAREA Output Fields set by Successful Command Functions
Current Request Buffer Length
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Open Requests
261
Chapter 6: Common Routines
DBCHCL CMD Function
Table 32: DBCAREA Output Fields set by Successful Command Functions (continued)
DBCAREA Output Fields set by Successful Command Functions
TDP Request Number
262
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 6: Common Routines
DBCHCL ABT Function
DBCHCL ABT Function
Purpose
ABT (Abort) attempts to abort a request and the transaction in which it is embedded. This is
known as an asynchronous abort.
Abort may be used within an External Stored Procedure to indicate that the results of a
request initiated with the DBCAREA Return-result-to option will not be reflected to the
CALLer or the application.
Usage Notes
•
If the Return Code is 0, the abort has been sent to the Teradata Database. However, 0 does
not mean the request has been aborted. The application must perform FET to check the
final disposition of the original request and ERQ to release the request context.
•
If the abort reaches the Teradata Database before it completes the request, the request will
be aborted and the containing transaction rolled back. Storage associated with the request
is kept until ERQ is issued for the request.
•
If the abort reaches the Teradata Database after the request has completed, the abort is
ignored.
•
If the application has an active transaction and is between requests, issue Initiate Request
with a ROLLBACK statement rather than calling ABT to perform the abort.
•
If the session is running in 2PC mode, ABT ensures that the current session is aborted at
syncpoint. This occurs even if the abort had no effect (for example, if the request
completed before ABT could abort it).
DBCAREA Input Fields
Before using the Abort function, the application must set the DBCAREA fields in the first
table and may optionally set those in the second table depending on the application's
requirements.
DBCAREA Input Fields Required for the Abort Function
Function
Input CLIv2 Request Id
Input CLIv2 Connection Id
DBCAREA Input Fields Optional for the Abort Function
Message Area Length
Message Area Pointer
DBCAREA Output Fields
Upon completion of the Abort function, CLIv2 will always set DBCAREA fields in the table.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
263
Chapter 6: Common Routines
DBCHCL ABT Function
DBCAREA Output Fields always set by the Abort Function
Message Return Code
Message Length
Message Text
Message Text Length
Return Code
264
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 6: Common Routines
DBCHCL FET Function
DBCHCL FET Function
Purpose
FET (Fetch) delivers a pointer to the next parcel of the response.
Usage Notes
•
If Return Code is 0, the application may process the response from the Teradata Database.
FET may be invoked repeatedly until the entire response has been processed.
•
For 2PC sessions, Fetch ensures that the current session is aborted at syncpoint if a failure
parcel is received in response to a request.
•
In addition, the first FET after a CON call will return the following fields:
•
Output TDP Path
•
Output TDP Session Id
•
Output Host Id
DBCAREA Input Fields
Before using the Fetch function, the application must set the DBCAREA fields in the first table
and may optionally set those in the second table depending on the application's requirements.
DBCAREA Input Fields Required for the Fetch Function
Function
Input CLIv2 Connection Id
Input CLIv2 Request Id
DBCAREA Input Fields Optional for the Fetch Function
Fetch Data Pointer
Fetch Maximum Data Length
Message Area Length
Message Area Pointer
Positioning-action
Positioning-statement-number
Positioning-value
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
265
Chapter 6: Common Routines
DBCHCL FET Function
DBCAREA Output Fields
Upon completion of the Fetch function, CLIv2 will always set DBCAREA fields in the first
table and will set those in the second table if the function was successful.
Table 33: DBCAREA Output Fields always set by the Fetch Function
DBCAREA Output Fields always set by the Fetch Function
Current Response
Return Code
Session Status
Message Length
Message Return Code
Message Text
Table 34: DBCAREA Output Fields set by Successful Fetch Functions
DBCAREA Output Fields set by Successful Fetch Functions
Buffer Length
Data Length
Fetch Data Pointer
Fetch Parcel Flavor
Fetch Returned
Message Text Length
Output TDP
Output Host Id
TDP-receipt-timestamp
Time1
Time1-status
Time2
Time2-status
Time3
Time3-status
Time4
Time4-status
Time5
Time5-status
266
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 6: Common Routines
DBCHCL ERQ Function
DBCHCL ERQ Function
Purpose
ERQ (End Request) explicitly closes a request, discard its response, and deallocated internal
data structures related to the request.
Usage Notes
•
If Return Code is 0, the ERQ has successfully completed.
•
CLIv2 will keep the response buffer if Save Response Buffer was Y when the request was
submitted. This permits CLIv2 to reuse the response buffer for the next Initiate Request
without allocating a new one.
DBCAREA Input Fields
Before using the End Request function, the application must set the DBCAREA fields in the
first table and may optionally set those in the second table depending on the application's
requirements.
Table 35: DBCAREA Input Fields Required for the EndRequest Function
DBCAREA Input Fields Required for the EndRequest Function
Function
Input CLIv2 Request Id
Input CLIv2 Connection Id
Table 36: DBCAREA Input Fields Optional for the EndRequest Functions
DBCAREA Input Fields Optional for the EndRequest Functions
Message Area Length
Message Area Pointer
DBCAREA Output Fields
Upon completion of the End Request function, CLIv2 will always set DBCAREA fields in the
first table and will set those in the second table if the function was successful.
Table 37: DBCAREA Output Fields Always Set for the EndRequest Function
DBCAREA Output Fields Always Set for the EndRequest Function
Message Text
Message Length
Message Text Length
Return Code
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
267
Chapter 6: Common Routines
DBCHCL ERQ Function
Table 38: DBCAREA Output Fields Set by Successful EndRequest Functions
DBCAREA Output Fields Set by Successful EndRequest Functions
Open Requests
268
Message Return Code
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 6: Common Routines
DBCHCL REW Function
DBCHCL REW Function
Purpose
REW (Rewind) repositions to the beginning of the response from the Teradata Database.
Keep Response must have been set to Y at the time of the Initiate Request for the request.
Since Keep-response does not apply to Connect requests, the response to a Connect cannot be
rewound.
Usage Notes
If Return Code is 0, the application may use FET to process the response.
DBCAREA Input Fields
Before using the Rewind function, the application must set the DBCAREA fields in the first
table and may optionally set those in the second table depending on the application's
requirements.
DBCAREA Input Fields Required for the Rewind Function
Function
Input CLIv2 Request Id
Input CLIv2 Connection Id
DBCAREA Input Fields Optional for the Rewind Function
Message Area Length
Message Area Pointer
DBCAREA Output Fields
Upon completion of the End Request function, CLIv2 will always set DBCAREA fields in the
first table and will set those in the second table if the function was successful.
DBCAREA Output Fields always set by the Rewind Function
Message Return Code
Message Text
Message Length
Message Text Length
Return Code
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
269
Chapter 6: Common Routines
DBCHCL DSC Function
DBCHCL DSC Function
Purpose
DSC (Disconnect) logs a session off the Teradata Database.
Usage Notes
•
Check the Return Code; if zero, the disconnect was successfully completed.
•
If the session has a pending request, a return code of 336 (request may be aborted) is
returned to the application. The session is still logged off but the response is lost.
•
If there is an active transaction at the time of the DSC, the Teradata Database rolls back
all work performed within that transaction prior to completing the logoff.
•
DSC should be used to clean up session context even if the connect was not successful
(initial or final status).
•
In 2PC mode, Disconnect ensures that the current session is aborted at syncpoint if the
session has performed any uncommitted Teradata SQL requests.
DBCAREA Input Fields
Before using the Disconnect function, the application must set the DBCAREA fields in the
first table and may optionally set those in the second table depending on the application's
requirements.
DBCAREA Input Fields Required for the Disconnect Function
Function
Input CLIv2 Connection Id
DBCAREA Input Fields Optional for the Disconnect Function
Message Area Length
Message Area Pointer
DBCAREA Output Fields
Upon completion of the End Request function, CLIv2 will always set DBCAREA fields in the
table.
DBCAREA Output Fields always set by the Disconnect Function
270
Message Return Code
Message Lenth
Message Text
Message Text Lenth
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 6: Common Routines
DBCHCLN
DBCHCLN
Purpose
Logs off all sessions and free all internal memory and context information allocated by CLIv2.
Note: The alternate six-character name for DBCHCLN is DBCHCN.
Interface
This routine is called with the following parameters, stylistically presented (the actual syntax
varies according to the programming language being used):
DBCHCLN(ReturnCode,ContextArea)
In high-level languages, the details of the parameter list are handled by the compiler. For
Assembler, the parameter list consists of contiguous 4 byte entries, each containing the 31 bit
address of a parameter. The last address has the first bit set to one to indicate the end of the
list.
The parameters for this routine are:
Argument
Content
ReturnCode
A 4 byte unsigned integer field into which the return code will be placed by
CLIv2.
ContextArea
A 4 byte unsigned integer field for internal use by CLIv2.
Usage Notes
•
The application invokes the DBCHCLN routine when all processing requiring interfacing
with the Teradata Database is complete.
•
DBCHCLN does the following:
•
logs off any idle sessions
•
awaits completion of any active sessions and then logs them off
•
frees all internal memory and context information allocated by CLIv2.
•
DBCHCLN deallocates internal data structures that were allocated by DBCHINI.
•
DBCHCLN returns control to the application once all sessions have been logged off and
all internal context has been cleaned up.
•
After control returns from DBCHCLN, the variable contains a code whose value
represents success or failure to clean up.
A return code of zero indicates success.
A nonzero return code indicates failure, and the value specifies the reason for the failure.
After the call, the return code variable will contain a return code.
•
After the call, CLIv2 changes ContextArea for its own purposes.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
271
Chapter 6: Common Routines
DBCHCLN
•
The call to DBCHCLN does not deallocate the DBCAREA.
The application may itself deallocate the DBCAREA if the programming language
provides that ability.
•
272
Termination of the application has the same effect as DBCHCLN, but it is good
programming practice to call DBCHCLN for cleanup.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
CHAPTER 7
Other CLIv2 Routines
This chapter describes the following CLIv2 routines:
•
DBCHME
•
DBCHMEC
•
DBCHPEC
•
DBCHSAD
•
DBCHUE
•
DBCHUEC
•
DBCHWAT
•
DBCHWL
The CLIv2 query routine is described in Chapter 8: “CLIv2 Query Routine”.
Uses of CLIv2 Routines: Tabular Summary
Table 39 lists the remaining routines and describes how they are used.
Table 39: Uses of CLIv2 Routines
Routine
Description
DBCHME
What
Adds master event in place of session event
Why
For the convenience of the application
What
A deprecated routine now replaced by DBCHME.
Why
For the convenience of the application
What
Posts an ECB
Why
To return control to the application when some event occurs (like
terminal attention)
Why
To enable the application to obtain environmental information
What
Stores specified value at specified address
Why
To provide pointer support in languages that do not support pointer
manipulation
DBCHMEC
DBCHPEC
DBCHSAD
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
273
Chapter 7: Other CLIv2 Routines
Parameters of CLIv2 Routines: Tabular Summary
Table 39: Uses of CLIv2 Routines (continued)
Routine
Description
What
Adds user-provided event to CLIv2‘s internal wait list
Why
To set up a way for the application to regain control if some event is
detected (like terminal attention)
What
A deprecated routine now replaced by DBCHUE.
Why
To set up a way for the application to regain control if some event is
detected (like terminal attention)
What
Waits for event to occur (an event refers to the arrival of some response
from the Teradata Database)
DBCHUE
DBCHUEC
DBCHWAT
If DBCHUE has been invoked, an event also refers to the occurrence of
some application-defined event
DBCHWL
Why
To provide a mechanism for explicit waits for events; also simplifies
handling of concurrent sessions
What
Waits for one of a list of events to occur.
Why
To provide a mechanism to explicitly wait for only some events.
Parameters of CLIv2 Routines: Tabular
Summary
Table 40 lists the parameters for the routines described in this chapter.
Table 40: Parameters of CLIv2 Routines
Routines
Parameters
DBCHME
ReturnCode
ContextArea
MasterECB
Parameter Area
DBCHMEC
ReturnCode
ContextArea
MasterECB
DBCHPEC
ReturnCode
UserECB
274
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 7: Other CLIv2 Routines
Parameters of CLIv2 Routines: Tabular Summary
Table 40: Parameters of CLIv2 Routines (continued)
Routines
Parameters
DBCHSAD
ReturnCode
Target Address
Source Value
DBCHUE
ReturnCode
Context Area
UserECB
Parameter Area
DBCHUEC
ReturnCode
Context Area
UserECB
DBCHWAT
ReturnCode
ContextArea
ConnectionNumber
Request-token
DBCHWL
ReturnCode
ContextArea
SessionList
ConnectionNumber
Request-token
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
275
Chapter 7: Other CLIv2 Routines
DBCHME
DBCHME
Purpose
Called by the application to establish a master event in place of individual session events.
Interface
This routine is called with the following parameters, stylistically presented (the actual syntax
varies according to the programming language being used):
DBCHME(ReturnCode,ContextArea,MasterECB,FunctionCode)
In high-level languages, the details of the parameter list are handled by the compiler. For
Assembler, the parameter list consists of contiguous 4 byte entries, each containing the 31 bit
address of a parameter. The last address has the first bit set to one to indicate the end of the
list.
The parameters for this routine are:
Argument
Content
ReturnCode
A 4 byte unsigned integer field into which the return code will be placed by
CLIv2.
ContextArea
A 4 byte unsigned integer field for internal use by CLIv2.
MasterECB
When defining a master event (DBCHMEP function code 1), the area
allocated by the application for use as the master ECB.
When deleting a master event (DBCHMEP function code 2), this parameter
must be present but is not used by DBCHME.
FunctionCode
The DBCHMEP area.
Usage Notes
•
Set Wait For Response to N.
•
DBCHME may only be used when no sessions exist; that is, either before any session has
been connected or after all sessions have been disconnected.
•
After the call, the return code variable contains a return code.
•
After the call, CLIv2 changes ContextArea for its own purposes.
For more information on ECBs, see IBM manuals.
Master Event Parameters (MEP)
The following table defines the DBCHMEP area. The field is set by the application.
The field names in all languages are the same, except that the C field names are case-sensitive.
276
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 7: Other CLIv2 Routines
DBCHME
Field Name
Offset
Length
Description
MEPFUNC
(mepFunc)
00
4
Unsigned numeric function to be performed.
Valid function codes and their descriptions are listed in the
table following this table.
The MEPFUNC Field
In the MEPFUNC field, the following are valid function codes:
Function Code
Name
Mnemonic for All
Languages, Including C
Description
1
Define
MEPFDEF
Define a master event.
2
Delete
MEPFDEL
Delete a master event.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
277
Chapter 7: Other CLIv2 Routines
DBCHMEC
DBCHMEC
Purpose
A deprecated routine now replaced by DBCHME.
Interface
This routine is called with the following parameters, stylistically presented (the actual syntax
varies according to the programming language being used):
DBCHMEC(ReturnCode,ContextArea,MasterECB)
In high-level languages, the details of the parameter list are handled by the compiler. For
Assembler, the parameter list consists of contiguous 4 byte entries, each containing the 31 bit
address of a parameter. The last address has the first bit set to one to indicate the end of the
list.
The parameters for this routine are:
278
Argument
Content
ReturnCode
A 4 byte unsigned integer field into which the return code will be placed by
CLIv2.
ContextArea
A 4 byte unsigned integer field for internal use by CLIv2.
MasterECB
The area allocated by the application for use as the master ECB.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 7: Other CLIv2 Routines
DBCHPEC
DBCHPEC
Purpose
Posts an ECB, including the one established by DBCHUE.
Note: The alternate six-character name for DBCHPEC is DBCHPE.
Interface
This routine is called with the following parameters, stylistically presented (the actual syntax
varies according to the programming language being used):
DBCHPEC(ReturnCode,ECB)
In high-level languages, the details of the parameter list are handled by the compiler. For
Assembler, the parameter list consists of contiguous 4 byte entries, each containing the 31 bit
address of a parameter. The last address has the first bit set to one to indicate the end of the
list.
The parameters for this routine are:
Argument
Content
ReturnCode
A 4 byte unsigned integer field into which the return code will be placed by
CLIv2.
ECB
The application allocated area for use as the ECB.
Usage Notes
•
After control returns from DBCHPEC, the variable contains a code whose value
represents success or failure. A return code of zero indicates success, a nonzero return
code indicates failure, and the value specifies the reason for the failure.
•
After the call, the return code variable contains a return code.
•
For more information on ECBs, see IBM manuals.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
279
Chapter 7: Other CLIv2 Routines
DBCHSAD
DBCHSAD
Purpose
Stores the address of a variable at a specified location.
Note: The alternate six-character name for DBCHSAD is DBCHSA.
Interface
This routine is called with the following parameters, stylistically presented (the actual syntax
varies according to the programming language being used):
DBCHSAD(ReturnCode,Target,Source)
In high-level languages, the details of the parameter list are handled by the compiler. For
Assembler, the parameter list consists of contiguous 4 byte entries, each containing the 31 bit
address of a parameter. The last address has the first bit set to one to indicate the end of the
list.
The parameters for this routine are:
Argument
Content
ReturnCode
A 4 byte unsigned integer field into which the return code will be placed by
CLIv2.
Target
The area where the source address will be stored.
Source
Address to be stored.
Usage Notes
DBCHSAD is intended for use in COBOL and other languages that do not support pointer
manipulation.
280
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 7: Other CLIv2 Routines
DBCHUE
DBCHUE
Purpose
Called by the application to add a user-provided event to CLIv2‘s internal wait list.
Interface
This routine is called with the following parameters, stylistically presented (the actual syntax
varies according to the programming language being used):
DBCHUE(ReturnCode,ContextArea,User event,DBCHUEP)
In high-level languages, the details of the parameter list are handled by the compiler. For
Assembler, the parameter list consists of contiguous 4 byte entries, each containing the 31 bit
address of a parameter. The last address has the first bit set to one to indicate the end of the
list.
The parameters for this routine are:
Argument
Content
ReturnCode
A 4 byte unsigned integer field into which the return code will be placed by
CLIv2.
ContextArea
A 4 byte unsigned integer field for internal use by CLIv2.
UserECB
When defining a user event (DBCHUEP function code 1), address of the
application allocated area for use as the User ECB. When deleting a user event
(DBCHUEP function code 2), this parameter must be present but is not used
by DBCHUE.
DBCHUEP
User Event Parameters (UEP)
Usage Notes
•
Only one User ECB is honored at a time; only the last one added has an effect.
•
For compatibility with the DBCHUEC service, the User ECB may be deleted by specifying
a User ECB address of binary zeroes. The preferred method to delete a user event is to use
a function code of 2.
•
The User ECB remains in effect until explicitly removed.
•
CLIv2 reflects the completion of the event associated with the User ECB by a return code
of 160. Any time CLIv2 must wait for the completion of an event, the User ECB is checked.
Before reflecting this return code to the application, the indicator that it has been posted
in the User ECB is cleared.
•
After the call, the return code variable will contain a return code.
•
After the call, CLIv2 will change ContextArea for its own purposes.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
281
Chapter 7: Other CLIv2 Routines
DBCHUE
User Event Parameters
The following table defines the DBCHUEP area. The field is set by the application.
The field names in all languages are the same, except that the C field names are case-sensitive.
Field Name
Offset
Length
Description
UEPFUNC
(uepFunc)
00
4
Unsigned numeric function to be performed.
Valid function codes and their descriptions are listed in
the table following this table.
The UEPFUNC Field
In the UEPFUNC field, the following are valid function codes:
282
Function
Code
Name
Mnemonic for All
Languages, Including C
Description
1
Define
UEPFDEF
Define a user event.
2
Delete
UEPFDEL
Delete a user event.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 7: Other CLIv2 Routines
DBCHUEC
DBCHUEC
Purpose
A deprecated routine now replaced by DBCHUE.
Interface
This routine is called with the following parameters, stylistically presented (the actual syntax
varies according to the programming language being used):
DBCHUEC(ReturnCode,ContextArea,UserECB)
In high-level languages, the details of the parameter list are handled by the compiler. For
Assembler, the parameter list consists of contiguous 4 byte entries, each containing the 31 bit
address of a parameter. The last address has the first bit set to one to indicate the end of the
list.
The parameters for this routine are:
Argument
Content
ReturnCode
A 4 byte unsigned integer field into which the return code will be placed by
CLIv2.
ContextArea
A 4 byte unsigned integer field for internal use by CLIv2.
UserECB
The application allocated area for use as the User ECB.
For CICS applications, the User ECB must be in SHARED storage.
Usage Notes
The user ECB may be cancelled by specifying a User ECB address of binary zeroes.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
283
Chapter 7: Other CLIv2 Routines
DBCHWAT
DBCHWAT
Purpose
Waits for an event, such as the arrival of a response from the Teradata Database or some other
occurrence defined by the application.
Note: The alternate six-character name for DBCHWAT is DBCHWT.
Interface
This routine is called with the following parameters, stylistically presented (the actual syntax
varies according to the programming language being used):
DBCHWAT(ReturnCode,ContextArea,ConnectionNumber,Request-token)
In high-level languages, the details of the parameter list are handled by the compiler. For
Assembler, the parameter list consists of contiguous 4 byte entries, each containing the 31 bit
address of a parameter. The last address has the first bit set to one to indicate the end of the
list.
The parameters for this routine are:
Argument
Content
ReturnCode
A 4 byte unsigned integer field into which the return code will be placed
by CLIv2.
ContextArea
A 4 byte unsigned integer field for internal use by CLIv2.
ConnectionNumber
An area to receive a four-byte unsigned integer representing the logical
session id of the first active request to complete.
Request-token
An area to receive a four-byte unsigned integer user-supplied token
associated with the first active request to complete.
Usage Notes
•
Each call to DBCHWAT reflects completion of one event. If multiple events have
completed, none are lost. Rather, their completions are reflected on subsequent calls to
DBCHWAT. Each completed event is reflected only once.
For example, if two events complete, the first call to DBCHWAT reflects one event, the
second call reflects the second event, and the third call waits for completion of another
event, if any responses are pending. When multiple responses have arrived, they are
reflected to the application in the order in which their requests were initiated, not the
order in which they arrived. This ensures that repeated use of a request that completes
quickly does not prevent reflection of longer-running responses.
•
284
If DBCHUE has been used to provide a User-event, its completion is reflected before the
arrival of any response.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 7: Other CLIv2 Routines
DBCHWAT
•
DBCHWAT is normally used when an application has multiple sessions, allowing the
application to be notified immediately of the first completion.
•
If there are no responses whose arrival is pending, a return code 123 results. If DBCHUE
has been used to provide a User-event, it is ignored. That is, when there are no pending
responses, the User-event is neither checked for completion nor does suspension occur for
the event's completion. A User-event is honored only when a request has been issued but
not yet completed.
•
When the DBCHME service has been used to include Teradata requests in another event,
DBCHWAT never waits. If no events have completed, a return code 162 is reflected,
allowing the application to wait for the master event using an operating system service.
•
After the call, the return code variable contains a return code.
•
After the call, CLIv2 changes ContextArea for its own purposes.
•
Requests for sessions that specify the Wait-exclusion option are ignored by DBCHWAT.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
285
Chapter 7: Other CLIv2 Routines
DBCHWL
DBCHWL
Purpose
Waits for one of a list of events, such as the completion of a response from the Teradata
Database or some user event defined by the application.
Interface
This routine is called with the following parameters, stylistically presented (the actual syntax
varies according to the programming language being used):
DBCHWL(ReturnCode,ContextArea,SessionList,ConnectionNumber,
Request-token)
In high-level languages, the details of the parameter list are handled by the compiler. For
Assembler, the parameter list consists of contiguous 4 byte entries, each containing the 31 bit
address of a parameter. The last address has the first bit set to one to indicate the end of the
list.
The parameters for this routine are:
Argument
Content
ReturnCode
A 4 byte unsigned integer field into which the return code will be placed by
CLIv2.
ContextArea
A 4 byte unsigned integer field for internal use by CLIv2.
SessionList
a list of contiguous 12 byte entries, each consisting of three unsigned
integer fields. The first contains the connection number of a session; the
other two are unused and should be initialized to zero; the last entry in the
list must contain a connection number of binary zeroes.
ConnectionNumber
A 4 byte unsigned integer field into which the connection number
associated with a completed request will be placed by CLIv2 if a request
completes; if a user event completes binary zeroes will be returned.
Request-token
A 4 byte unsigned integer field into which the DBCAREA Request-token
when the request was initiated will be placed by CLIv2 if a request
completes; if a user event completes binary zeroes will be returned.
Usage Notes
•
286
Each call to DBCHWL reflects completion of one event. If multiple events have
completed, none are lost. Rather, their completions are reflected on subsequent calls to
DBCHWL. Each completed event is reflected only once. For example, if two events
complete, the first call to DBCHWL reflects one event, the second call reflects the second
event, and the third call waits for completion of another event, if any responses are
pending.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 7: Other CLIv2 Routines
DBCHWL
•
When multiple responses have completed, they are reflected to the application in the order
in which their requests were initiated, not the order in which they completed. This ensures
that repeated use of a request that completes quickly does not prevent reflection of longerrunning responses.
•
The session list may contain any valid connection number, whether or not a response is
pending for that session. Each time DBCHWL is called, any connection number for which
no response is pending is ignored.
•
If DBCHUEC has been used to provide a user event, its completion is reflected before the
completion of any response.
•
If there are no responses whose completion is pending, a return code 123 results. If
DBCHUEC has been used to provide a user event, it is ignored. That is, when there are no
pending responses, the user event is neither checked for completion nor does suspension
occur for the event's completion. A user event is honored only when a request has been
issued but not yet completed.
•
When the DBCHME service has been used to include Teradata requests in another event,
DBCHWL never waits. If no events have completed, a return code 162 is reflected,
allowing the application to wait for the master event using an operating system service.
•
After the call, the return code field contains a return code.
•
After the call, CLIv2 may have changed the ContextArea field for its own purposes.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
287
Chapter 7: Other CLIv2 Routines
DBCHWL
288
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
CHAPTER 8
CLIv2 Query Routine
This chapter describes the CLIv2 query routine, DBCHQE, which is used to obtain
information about CLIv2, TDP, or Teradata Database.
DBCHQE
DBCHQE is called by a CLIv2 application to obtain information about its execution
environment. When used by an application supporting multiple releases of CLIv2, TDP, or
Teradata Database, some return codes that indicate downlevel versions of these components
must be handled by the application, most often as equivalent to the information not being
available.
•
202 - CLIv2 does not support the query item
•
359 - the Database does not provide the information
•
365 - TDP does not provide the information
•
451 - TDP does not support the query item
For queries that return collections of items (Aggregate-support-list, Procedure-data, and
Utility-data), these applications should also allow for downlevel versions of CLIv2 by ensuring
that items of interest are present by checking the returned length (QEPRALEN).
Interface
This routine is called with the following parameters, stylistically presented (the actual syntax
varies according to the programming language being used):
DBCHQE(ReturnCode,ContextArea,DBCHQEP,...)
In high-level languages, the details of the parameter list are handled by the compiler. For
Assembler, the parameter list consists of contiguous 4 byte entries, each containing the 31 bit
address of a parameter. The last address has the first bit set to one to indicate the end of the
list.
The parameters for this routine are:
Argument
Content
ReturnCode
A 4 byte unsigned integer field into which the return code will be placed by
CLIv2.
ContextArea
A 4 byte unsigned integer field for internal use by CLIv2.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
289
Chapter 8: CLIv2 Query Routine
DBCHQE
Argument
Content
DBCHQEP
The DBCHQEP structure.
...
Zero or more additional DBCHQEP structures.
Usage Notes
•
There can be multiple DBCHQEP addresses.
•
Each DBCHQEP address contains the address of a DBCHQEP
•
Each such area queries one piece of environmental information, such as the
installation id that is defined in the HSISPB.
•
When the query is successful (QEPRC contains zero), the area addressed by the QEPRAP
field contains the requested information, and the QEPRDLEN field contains the number
of bytes of the data returned. QEPRMLEN is set to zero, and any provided message area is
filled with spaces in the specified, or default, character set.
•
When the query is unsuccessful (QEPRC contains a CLIv2 return code), the area
addressed by the QEPRAP field is unchanged, and the QEPRDLEN field contains zero. If a
message area if provided, QEPRMLEN indicates the length in bytes of the message in the
specified, or default, character set. The contents of the area are the Query Environment
Results (QER) which is described as the DBCHQER area.
Upon completion, the return code will be the first or only DBCHQEP's QEPRC value.
Query Environment Parameters (QEP)
The following table defines the DBCHQEP area. All fields are set by the application with the
exception of QEPRDLEN, which is set by CLIv2. The field names in all languages are the
same, except that the C field names are case-sensitive. They appear in the following table in
upper and lower case immediately below the field names in Assembler, COBOL and PL/I.
A mnemonic is provided for QEPLEVEL. The name is the same for all languages, including C,
and is QEPLVLC.
Field Name
Offset
Length
Description
QEPLEVEL
00
1
Unsigned numeric format of the parameter list.
(qepLevel)
QEPITEM
Must be set to 4.
01
1
(qepItem)
QEPTLEN
(qepTLen)
Unsigned numeric item to be queried.
Valid item codes and their descriptions are listed in the
table following this table.
02
2
Unsigned numeric length of the TDP identifier
addressed by QEPTIDP, if one is provided.
When a TDP identifier is required but a length of zero
is specified, the default identifier in the HSHSPB is
used.
290
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 8: CLIv2 Query Routine
DBCHQE
Field Name
Offset
Length
Description
QEPTIDP
04
4
Pointer to an area containing the TDP identifier, if one
is provided.
(qepTIDP)
The full TDP identifier must be specified. One
character abbreviations are valid only within a logon
string.
If the TDP identifier is not specified, the syntax of the
TDP identifier is described in.
QEPCONN
04
4
Unsigned numeric CLIv2 connection number, if
required.
08
3
Not used.
(qepConn)
QEPFILL1
Must be set to 0.
QEPVRF
11
1
(varyingResult
Fmt for C;
VARYING-RE
SULT-FMT for
COBOL;
VARYING_RE
SULT_FMT for
PL/I))
QEPRALEN
• 0, the default, or just characters as an unsigned
1-byte integer that specifies the format of variablelength character results, where 0 has a mnemonic of
QEPVRFC (QER_varRsltFmtChar for C, CHAR for
COBOL; QER_VAR_RSLT_FMT_CHAR for PL/I)
• 2 for a 2-byte unsigned integer that contains the
number of characters followed by the characters,
where 2 has a mnemonic of QEPVRF2C
(QER_varRsltFmtShIntChar for C,
LEN9999-CHAR for COBOL;
QER_VAR_RSLT_FMT_VARCHAR for PL/I).
The use of QEPVRF2C increases the size of the result
by two bytes. While the specification must always be
valid, it has no effect for results that do not consist of a
variable-length character string (currently only
Database-access-path).
12
2
Unsigned numeric length of the area in which the
result of the query is returned.
14
2
Unsigned numeric length of the data returned.
(qepRALen)
QEPRDLEN
(qepRDLen)
QEPRAP
Varying-result-format must be one of the following:
Set to the length of the data returned (up to the size of
the area as specified by the QEPRALEN field).
16
4
(qepRAP)
Pointer to the area in which the result of the query is
returned.
The area pointed to is defined by CLIv2.
QEPMLID
(qepMLid)
20
2
Characters specifying the language to be used for any
CLIv2 error message associated with the request. When
a language is commonly used in several countries the
Country Id may be specified to select messages that are
unique to that country.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
291
Chapter 8: CLIv2 Query Routine
DBCHQE
Field Name
Offset
Length
Description
The Language Id is defined by the ISO 639 standard.
The value is in EBCDIC, and both lower and upper
case characters are permitted (lower case characters are
permitted since ISO 639 favors them for the Language
Id).
If not specified, the default value provided in the
HSHSPB is used. If no HSHSPB default exists, EN is
assumed. Refer to “DBCHUEP” on page 231 for derails
of each supported language.
Note: The only language for which messages are
distributed is United States English (Language Id of
'EN', optional Country Id of 'US'), although Teradata
in the various countries or customers may provide
additional languages.
The mechanism by which the CLIv2 error messages
may be defined in other languages is described in
“Chapter 14 Message Definitions” on page 413.
If a message must be returned but messages are not
available in the specified language, then the message
number with fixed message text of '(REQUIRED
MESSAGE TABLE IS NOT AVAILABLE)' in United
States English will be returned.
For example, the message 'CLI0187 MISSING
PARAMETER' would be presented as:
CLI0187 (REQUIRED MESSAGE TABLE IS NOT
AVAILABLE)
QEPMCID
(qepMCid)
22
2
Characters specifying the country variant of the
language to be used for any CLIv2 error message
associated with the request. The value specifies a two
character Country Id. Since the Country Id qualifies
the language, Language Id must also be specified.
When a language is commonly used in several
countries, the Country Id may be used to select
messages that are unique to a specific country.
The Country Id is defined by the ISO 3166-1 standard.
The value is in EBCDIC, and both lower and upper
case characters are permitted (lower case characters are
permitted to prevent confusion in remembering which
ISO standard favors lower case).
If not specified, the default value provided in the
HSHSPB is used. If no HSHSPB default exists, US is
assumed. Refer to “Country Id” on page 84 for details
of supported countries.
292
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 8: CLIv2 Query Routine
DBCHQE
Field Name
Offset
Length
Description
If a message must be returned but messages are not
available in the specified language, then the message
number with fixed message text of '(REQUIRED
MESSAGE TABLE IS NOT AVAILABLE)' in United
States English will be returned.
For example, the message 'CLI0187 MISSING
PARAMETER' would be presented as:
CLI0187 (REQUIRED MESSAGE TABLE IS NOT
AVAILABLE)
QEPMSGCS
24
4
(qepMsgCS)
Pointer to a 30 byte area that contains the name of the
character set to be used for messages. The value is in
upper case EBCDIC.
If not specified, the default value provided in the
HSHSPB is used. If no HSHSPB default exists,
EBCDIC is assumed.
Refer to “Character Set Pointer” on page 78 for details
on the supported character set names.
QEPMSGP
28
4
(qepMsgP)
Pointer to an area into which any error message will be
placed when a non-zero return code occurs.
QEPMSGM specifies the length of the area pointed to
by QEPMSGP. If an error occurred while building the
message, QEPRMRC will contain a CLIv2 return code.
When this code is not zero, the text of the message may
or may not be usable, depending on the nature of the
error.
The character set used to construct the message is
indicated by QEPMSGCS. If not specified, the default
value provided in the HSHSPB is used. If no HSHSPB
default exists, EBCDIC is assumed.
When a zero return code is reflected, any text from a
previous error is overwritten with spaces in the
character set indicated by QEPMSGCS, and
QEPRMLEN is zeroed.
QEPMSGM
32
2
Unsigned numeric length in bytes of the area pointed
to by QEPMSGP. The value is equivalent to the
maximum length of a message that can be returned in
that area. If QEPMSGP is not specified, this value is
ignored.
34
2
Unsigned numeric length in bytes of the message
returned in the area addressed by QEPMSGP. If
QEPMSGP is not specified, this value is not returned.
36
2
Unsigned numeric CLIv2 return code for any error that
occurred while constructing the message. If no error
occurred, binary zeroes are returned.
(qepMsgM)
QEPRMLEN
(qepRMLen)
QEPRMRC
(qepRMRC)
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
293
Chapter 8: CLIv2 Query Routine
DBCHQE
Field Name
Offset
Length
Description
QEPRC
38
2
Unsigned numeric CLIv2 return code that occurred
while processing this DBCHQEP. If no error occurred,
binary zeroes are returned.
40
8
Reserved, must be binary zeroes.
48
8
Reserved, must be binary zeroes.
56
8
Reserved, must be binary zeroes.
64
8
Reserved, must be binary zeroes.
72
4
Unsigned numeric CLIv2 request number, if required.
76
4
Binary token, initially zero, thereafter as returned by
the previous incomplete query Available-character-sets
request
(qepRC)
QEPTIDP8
(qepTIdP8)
QEPRAP8
(qepRAP8)
QEPMCSP8
(qepMCSP8)
QEPMSGP8
(qepMsgP8)
QEPRQST
(qepRqst)
QEPTOKEN
(qepToken)
QEPITEM Field
In the QEPITEM field, the following are valid item codes:
Table 41: QEPITEM Field Valid Item Codes
294
Item Code
Name
Description
1
Installation-Id
The Installation-id
2
Session-character-set
A session's character set name.
This item code is deprecated by item code
46, which provides exactly the same
functionality.
3
Transaction-semantics-support
Defines whether Transaction-semantics
are supported
4
Language-conformance-support
Defines whether Language-conformance is
supported
5
Updatable-cursor-support
Defines whether Updateble-cursors are
supported
6
Referential-integrity-support
Defines whether Referential-integrity is
supported
7
Default-transaction-semantics
A server's default Transaction-semantics
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 8: CLIv2 Query Routine
DBCHQE
Table 41: QEPITEM Field Valid Item Codes (continued)
Item Code
Name
Description
8
Extended-parcel-size-support
Defines whether parcel sizes greater than
32767 bytes are supported
9
CLIv2-release
The CLIv2 release
10
Server-parallelism-factor
The extent of a server's parallel processing
11
Maximum-segment-size
The maximum size of a data segment
12
TDP-release
A TDP's release information
13
Single-signon-support
Defines whether Single-signon is
supported
14
Session-userid
A session's userid
15
UPSERT-support
Defines whether UPSERT SQL is
supported
16
Array-operations-support
Defines whether EXECUTE-FOR SQL is
supported
17
MERGE-INTO-support
Defines whether MERGE-INTO SQL is
supported
18
Large-object-support
Defines whether Large-objects are
supported
19
Timing-precision-range
The range of Timing-precision values
20
Extended-response-support
Defines whether response sizes greater
than 65535 bytes are supported
21
Expanded-parcel-header-usage
Defines which parcels allow the alternate
parcel header
22
Timestamp-types-support
Defines whether Timestamp-types are
supported
23
Utility-data
Data of interest only to proprietary
utilities.
24
Aggregate-support-list
List of selected other query items.
25
Response-positioning-support
Defines whether repositioning of response
data is supported.
26
Data-encryption-support
Whether data-encryption is supported.
27
Request-message-release
Message table release information.
28
Available-character-sets
The names of the server's available
character sets.
29
Enhanced-statement-status-support
Whether the server supports enhanced
statement results.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
295
Chapter 8: CLIv2 Query Routine
DBCHQE
Table 41: QEPITEM Field Valid Item Codes (continued)
296
Item Code
Name
Description
30
User-defined-types-support
Whether SQL supports user-defined data
types.
31
APH-response
Defines which response parcels permit the
alternate parcel header.
32
Available-logon-mechanisms
The names of the available logon
mechanisms.
33
Default-character-set
The default character set name from either
the HSHSPB or a Teradata Database's
default character set.
34
Database-release
The Teradata Database release and version.
35
CLIv2-limits
Teradata Database limits affecting an
application's values for CLIv2 settings.
36
SQL-limits
Teradata Database limits affecting an
application's use of SQL statements.
37
Relaxed-call-args
Defines whether relaxation of SQL CALL
arguments is supported.
38
Statement-info-support
Defines whether StatementInformation
parcels are supported.
39
Integer/decimal-enlargement
Defines whether the BIGINT data type is
supported, precision for DECIMAL data
types may exceed 18, or the maximum
precision for decimal data types in
responses may be specified.
40
Return-Identity-Data-support
Defines whether data may be returned in
response to an SQL Insert operation when
Identity columns are involved.
41
Result-sets-support
Defines whether stored procedures may
return the results of their SQL statements
to the application.
42
QueryBand-support
Defines whether the Teradata SQL SET
QUERY_BAND statement is supported.
43
Merge-into-usage
Defines whether and how the SQL MERGE
INTO statement is supported.
44
Logging-errors-usage
Defines whether and how the Teradata
SQL LOGGING ERRORS clause is
supported.
45
Procedure-data
Data of interest to external Stored
Procedures.
46
Session-character-set
The name of the character set for the
session.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 8: CLIv2 Query Routine
DBCHQE
Table 41: QEPITEM Field Valid Item Codes (continued)
Item Code
Name
Description
47
Column-correlation-support
Defines whether the Teradata SQL
CREATE, UPDATE, DROP, and HELP
CORRELATION statements are
supported.
48
Utility-session
Session date. Used internally, only by
Teradata utilities.
49
Database-access-path
For channel-attached systems, defines a
TDPid used to access the requested
database.
50
Trusted-session-support
Defines whether the Teradata SQL SET
QUERY_BAND PROXYUSER statement is
honored rather than silently ignored.
51
LOB-Name-support
Defines whether the BY NAME phrase is
permitted in the USING row descriptor in
a request string.
52
Transforms-off-usage
Defines whether the constituent attributes
of SQL Structured User Defined Types
(UDTs) may be referenced.
53
Trusted-request-support
Defines whether a request may indicate
whether it is trusted to use the Teradata
SQL SET
QUERY_BAND='PROXYUSER=...'
statement to change the session userid.
Installation-id
The Installation-id might be used on title pages or in heading or footing lines on output
generated by the application.
Refers to the invoked CLIv2.
Returns the installation Id for your site.
Response DBQERIID (DbqerIid for C)
Item
Code
Mnemonic
Field
Value
1
QEPIIID
QERIID
('id' for C)
Forty EBCDIC characters, left-justified and
padded on the right with blanks.
Transaction-semantics-support
Transaction-semantics-support might be used to ascertain whether ANSI may be specified for
the DBCAREA Transaction-semantics option without being rejected by CLIv2.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
297
Chapter 8: CLIv2 Query Routine
DBCHQE
Refers to the session whose CLIv2 connection number is specified in the QEPCONN field.
Returns the type of transaction semantics supported by the Teradata Database.
This item is also included in the Aggregate-support-list query item.
Response DBQERTSM (DbqerTSm for C)
Item
Code
Mnemonic
Field
Value
3
QEPITSM
QERTSM
('status' for C)
One of the following EBCDIC characters:
‘N‘ with mnemonic QERTSMN
(QER_NotSupported for C)
‘Y‘ with mnemonic QERTSMY
(QER_Supported for C)
Language-conformance-support
Language-conformance-support might be used to ascertain whether the DBCAREA
Language-conformance-standard option may be specified without being rejected by CLIv2.
Refers to the session whose CLIv2 connection number is specified in the QEPCONN field.
Returns the type of SQL standard supported by the Teradata Database.
This item is also included in the Aggregate-support-list query item.
Response DBQERLCS (DbqerLCS for C)
Item
Code
Mnemonic
Field
Value
4
QEPILCS
QERLCS
('status' for C)
One of the following EBCDIC characters:
‘N‘ with mnemonic QERLCSN
(QER_NotSupported for C)
‘Y‘ with mnemonic QERLCSY
(QER_Supported for C)
Updatable-cursor-support
Updatable-cursor-support might be used to ascertain whether an SQL Select statement may
contain a FOR CURSOR clause without being rejected by the Teradata Database.
Refers to the Teradata Database whose TDP identifier is addressed by the QEPTIDP field and
has the length of the identifier is specified by the QEPTLEN field.
Returns whether Updatable cursors are supported by the Teradata Database.
This item is also included in the Aggregate-support-list query item.
298
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 8: CLIv2 Query Routine
DBCHQE
Response DBQERUCR (DbqerUCr for C)
Item
Code
Mnemonic
Field
Value
5
QEPIUCR
QERUCR
('status' for C)
One of the following EBCDIC characters:
‘N‘ with mnemonic QERUCRN
(QER_NotSupported for C)
‘Y‘ with mnemonic QERUCRY
(QER_Supported for C)
Referential-integrity-support
Referential-integrity-support might be used to ascertain whether the Teradata Database
supports Referential Integrity.
Refers to the Teradata Database whose TDP identifier is addressed by the QEPTIDP field and
has the length of the identifier is specified by the QEPTLEN field.
Returns whether referential integrity is supported by the Teradata Database.
This item is also included in the Aggregate-support-list query item.
Response DBQERRFI (DbqerRfI for C)
Item
Code
Mnemonic
Field
Value
6
QEPIRFI
QERRFI
('status' for C)
One of the following EBCDIC characters:
‘N‘ with mnemonic QERRFIN
(QER_NotSupported for C)
‘Y‘ with mnemonic QERRFIY
(QER_Supported for C)
Default-transaction-semantics
The Default-transaction-semantics might be used to ascertain the Teradata Database default
value for Transaction-semantics to understand the impact on transaction execution.
Refers to the Teradata Database whose TDP identifier is addressed by the QEPTIDP field and
has the length of the identifier is specified by the QEPTLEN field.
Returns the default transaction semantics for the identified Teradata Database to the area
pointed to by QEPRAREA.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
299
Chapter 8: CLIv2 Query Routine
DBCHQE
Response DBQERDTS (DbqerDTS for C)
Item
Code
Mnemonic
Field
Value
7
QEPIDTS
QERDTS
('semantics' for C)
One of the following EBCDIC characters:
‘A‘ with mnemonic QERDTSA
(QER_SemanticsANSI for C)
‘T‘ with mnemonic QERDTST
(QER_SemanticsTeradata for C)
Extended-parcel-size-support
Extended-parcel-size-support might be used to ascertain whether a response buffer larger
than 32767 bytes will be used.
Refers to the Teradata Database whose TDP identifier is addressed by the QEPTIDP field and
has the length of the identifier is specified by the QEPTLEN field.
Returns whether parcels greater than 32767 bytes are supported by the Teradata Database.
This item is also included in the Aggregate-support-list query item.
Response DBQEREPS (DbqerEPS for C)
Item
Code
Mnemonic
Field
Value
8
QEPIEPS
QEREPS
('semantics' for C)
One of the following EBCDIC characters:
‘N‘ with mnemonic QEREPS
(QER_NotSupported for C)
‘Y‘ with mnemonic QEREPSY
(QER_Supported for C)
CLIv2-release
The CLIv2-release might be used to aid in problem diagnosis.
Refers to the release of CLIv2 being invoked.
Returns the release identifier for the CLIv2 being used.
Note: The intent of the data is not to deduce CLIv2 functionality, but simply to provide the
release information for whatever diagnostic use it may be. The value should not be parsed for
any reason since its format is subject to change.
300
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 8: CLIv2 Query Routine
DBCHQE
Response DBQERC2R (DbqerC2R for C)
Item
Code
Mnemonic
Field
Value
9
QEPIC2R
QERC2R
('release' for C)
The returned information consists of up to eleven
EBCDIC characters: the two-character offering
number; the two-character maintenance release
number; and an optional two-character E-tape
number (spaces if omitted); each separated by
periods.
Server-parallelism-factor
The Server-parallelism-factor might be used to compare the degree of parallelism on the
Teradata Database.
Refers to the Teradata Database whose TDP identifier is addressed by the QEPTIDP field and
has length specified by the QEPTLEN field.
Returns a dimensionless value that indicates the extent of parallel processing used internally
by the server.
Response DBQERSPF (DbqerSPF for C)
Item
Code
Mnemonic
Field
Value
10
QEPISPF
QERSPF
('factor' for C)
A four-byte unsigned integer.
Maximum-segment-size
This item is deprecated: new development should use Segment-length from the CLIv2-limits
query.
The Maximum-segment-size is used to obtain the size limit when using the DBCAREA
Segment-data option.
Refers to the Teradata Database whose TDP identifier is addressed by the QEPTIDP field and
has length specified by the QEPTLEN field.
Returns the maximum size of a segment.
Response DBQERMSS (DbqerMSS for C)
Item
Code
Mnemonic
Field
Value
11
QEPIMSS
QERMSS
('maximum' for C)
A four-byte unsigned integer
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
301
Chapter 8: CLIv2 Query Routine
DBCHQE
TDP-release
The TDP-release might be used to aid in problem diagnosis.
Refers to the TDP whose TDP identifier is addressed by the QEPTIDP field and has length
specified by the QEPTLEN field
Returns the release identifiers for the TDP being used.
Note: The intent of this data is not to deduce TDP functionality, but simply to provide the
current TDP release identification for whatever diagnostic value it may be. The value should
not be parsed for any reason since its format is subject to change.
Response DBQERTDR (DbqerTDR for C)
Item
Code
Mnemonic
Field
Value
12
QEPITDR
QERTDR
('release' for C)
Up to fifty-one EBCDIC characters, identifying
from one to three TDP components, separated by
commas.
The first, which begins with 'TDP.', is present if
available and identifies TDP itself.
The second, which begins with either 'PC', 'SVC',
or 'IUCV' and is enclosed in parentheses, is
always present and identifies the interface from
CLIv2 to TDP.
The third, which begins with either 'SXMS' or
'OSSI' and is enclosed in parentheses, is present if
applicable and available, and identifies the
interface from TDP to CLIv2.
Each identifier is normally eight characters
consisting of a two-character offering number;
the one-character major release number and onecharacter minor release number; and the
two-character maintenance release number; each
separated by periods. Each may also end with a
period followed by a two-character E-tape
number, but this is omitted if not applicable.
Single-signon-support
Single-signon-support might be used to avoid having to specify a password if the Teradata
Database honors userid authentication performed using a network security mechanism.
Refers to the TDP whose TDP identifier is addressed by the QEPTIDP field and has length
specified by the QEPTLEN field.
Returns whether single-signon is supported by TDP and the Teradata Database.
This item is also included in the Aggregate-support-list query item.
Note: Currently, no version of TDP supports single-signon.
302
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 8: CLIv2 Query Routine
DBCHQE
Response DBQERSSO (DbqerSSo for C)
Item
Code
Mnemonic
Field
Value
13
QEPISSO
QERSSO
('status' for C)
One of the following EBCDIC characters:
‘N‘ with mnemonic QERSSON
(QER_NotSupported for C)
‘Y‘ with mnemonic QERSSOY
(QER_Supported for C)
Session-userid
The Session-userid might be used to obtain the userid for the session without having to parse
the logon string.
Refers to the session whose CLIv2 connection number is specified in the QEPCONN field.
The session must have been established using a value of C for the Connect Type option.
Returns the userid associated with the session. Older Database releases whose object names
are thirty characters long return the userid left-justified padded on the right with blanks.
Newer Database that support longer object names trim trailing blanks.
Response DBQERSUI (DbqerSUi for C)
Item
Code
Mnemonic
Field
Value
14
QEPISUI
QERSUI
('userid' for C)
Between one and 2304 bytes long, encoded in the
character set specified when the session was
established.
UPSERT-support
UPSERT-support might be used to ascertain whether the SQL UPSERT statement is
supported by the Teradata Database.
Refers to the TDP whose TDP identifier is addressed by the QEPTIDP field and has length
specified by the QEPTLEN field.
Returns whether the UPSERT SQL statement is supported by the Teradata Database.
This item is also included in the Aggregate-support-list query item.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
303
Chapter 8: CLIv2 Query Routine
DBCHQE
Response DBQERUPS (DbqerUps for C)
Item
Code
Mnemonic
Field
Value
15
QEPIUPS
QERUPS
('status' for C)
One of the following EBCDIC characters:
‘N‘ with mnemonic QERUPSN
(QER_NotSupported for C)
‘Y‘ with mnemonic QERUPSY
(QER_Supported for C)
Array-operations-support
Array-operations-support might be used to ascertain whether a Using-data-count greater
than one may be specified without being rejected by CLIv2.
Refers to the TDP whose TDP identifier is addressed by the QEPTIDP field and has length
specified by the QEPTLEN field.
Returns whether the array operations is supported by the Teradata Database.
This item is also included in the Aggregate-support-list query item.
Response DBQERAOP (DbqerAOp fo C)
Item
Code
Mnemonic
Field
Value
16
QEPIAOP
QERAOP
('status' for C)
One of the following EBCDIC characters:
‘N‘ with mnemonic QERAOPN
(QER_NotSupported for C)
‘Y‘ with mnemonic QERAOPY
(QER_Supported for C)
MERGE-INTO-support
This item is deprecated: new development should use the Merge-into-usage query.
MERGE-INTO-support might be used to ascertain whether the MERGE-INTO SQL
statement is supported by the Teradata Database.
Refers to the TDP whose TDP identifier is addressed by the QEPTIDP field and has length
specified by the QEPTLEN field.
Returns whether the MERGE-INTO SQL statement for single-rows is supported by the
Teradata Database.
This item is also included in the Aggregate-support-list query item.
304
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 8: CLIv2 Query Routine
DBCHQE
Response DBQERMRI (DbqerMrI for C)
Item
Code
Mnemonic
Field
Value
17
QEPIMRI
QERMRI
('status' for C)
One of the following EBCDIC characters:
‘N‘ with mnemonic QERMRIN
(QER_NotSupported for C)
‘Y‘ with mnemonic QERMRIY
(QER_Supported for C)
Large-object-support
Large-object-support might be used to ascertain whether the Teradata Database supports
large objects (BLOBs or CLOBs).
Refers to the TDP whose TDP identifier is addressed by the QEPTDP field and has length
specified by the QEPTLEN field.
Returns whether Large Objects are supported by the Teradata Database.
This item is also included in the Aggregate-support-list query item
Response DBQERLOB (DbqerLOb for C)
Item
Code
Mnemonic
Field
Value
18
QEPILOB
QERLOB
('status' for C)
One of the following EBCDIC characters:
‘N‘ with mnemonic QERLOBN
(QER_NotSupported for C)
‘Y‘ with mnemonic QERLOBY
(QER_Supported for C)
Timing-precision-range
Timing-precision-range is used to obtain the minimum and maximum values acceptable for
the DBCAREA Timestamp-precision option.
Refers to the TDP whose TDP identifier is addressed by the QEPTIDP field and has length
specified by the QEPTLEN field.
Returns the minimum and maximum values for Timing-precision supported by TDP.
Response DBQERTPR (DbqerTPR for C)
Item
Code
Mnemonic
Fields
Value
19
QEPITPR
QERTPRMN
('minimum' for C)
A two-byte signed integer containing the
minimum value.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
305
Chapter 8: CLIv2 Query Routine
DBCHQE
Response DBQERTPR (DbqerTPR for C)
Item
Code
Mnemonic
Fields
Value
QERTPRMX
('maximum' for C)
A two-byte signed integer containing the
maximum value.
Extended-response-support
Extended-response-support might be used to ascertain whether a response buffer larger than
65535 bytes will be used.
Refers to the TDP whose TDP identifier is addressed by the QEPTIDP field and has length
specified by the QEPTLEN field.
Returns whether response buffers greater than 65535 bytes are supported by the Teradata
Database.
This item is also included in the Aggregate-support-list query item
Response DBQERERS (DbqerERs for C)
Item
Code
Mnemonic
Field
Value
20
QEPIERS
QERERS
('status' for C)
One of the following EBCDIC characters:
‘N‘ with mnemonic QERERSN
(QER_NotSupported for C)
‘Y‘ with mnemonic QERERSY
(QER_Supported for C)
Expanded-parcel-header-usage
Expanded-parcel-header-usage might be used to ascertain whether Teradata Database allows
use of the Alternate Parcel Header before constructing a parcel in Request-mode.
Refers to the TDP whose TDP identifier is addressed by the QEPTIDP field and has length
specified by the QEPTLEN field.
Returns whether parcels greater than 65535 bytes are supported by the Teradata Database.
This item is also included in the Aggregate-support-list query item
306
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 8: CLIv2 Query Routine
DBCHQE
Response DBQEREPH (DbqerEPH for C)
Item
Code
Mnemonic
Field
Value
21
QEPIEPH
QEREPH
(requestUsage for
C)
A two-byte unsigned integer containing either:
‘0‘ with mnemonic QEREPHN
(QER_RequestUsageNone for C)
The maximum size of all parcels is limited to
32767 or 65535, depending on the supported
setting of the Maximum-parcel option.
‘1‘ with mnemonic QEREPHI
(QER_RequestUsageSubset1 for C)
The maximum size of the following parcel flavors
may exceed 65535: 1-5, 7, 13-14, 31-32, 68-69, 7172, 85, 102, 115-118, 120, 128-129, 140-143, 146148, 153-154, 157-159.
Note: In addition to those parcel flavors
associated with a value of 1, the maximum size of
the following parcel flavors may also exceed
65535: 36-38, 41, 45, 52-57, 59-61, 63-65, 73, 75,
77-79, 81, 83, 88-89, 103, 106, 114, 135, 138, 155.
‘2‘ with mnemonic QEPEPHA
(QER_RequestUsageSubset2 for C)
Note: only those flavors used by normal
parcel-mode applications are described elsewhere
in this document
Timestamp-types-support
Timestamp-types-support might be used to ascertain whether the Teradata Database will
implicitly convert Timestamp data to Date data.
Refers to the TDP whose TDP identifier is addressed by the QEPTIDP field and has length
specified by the QEPTLEN field.
Returns whether distinct datatypes for timestamps are supported by the Teradata Database.
This item is also included in the Aggregate-support-list query item
Response DBQERTMT (DbqerTmT for C)
Item
Code
Mnemonic
Field
Value
22
QEPITMT
QERTMT
('status' for C)
One of the following EBCDIC characters:
‘N‘ with mnemonic QERTMTN
(QER_NotSupported for C)
‘Y‘ with mnemonic QERTMTY
(QER_Supported for C)
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
307
Chapter 8: CLIv2 Query Routine
DBCHQE
Utility-data
Utility-data is used by proprietary utilities and is not intended for other applications. It is
described here simply for completeness.
Refers to the TDP whose TDP identifier is addressed by the QEPTIDP field and has length
specified by the QEPTLEN field.
Returns information for internal use by the Teradata utilities. New items may be added;
therefore, the length of the result may vary depending on the version of CLIv2 or TDP.
Response DBQERUD (DbqerUD for C)
Item
Code
Mnemonic
Field
Value
23
QEPIUD
QERUDCI
(intervalStatus for
C)
One of the following EBCDIC characters:
‘N‘ with mnemonic QERUDCIN
(QER_NotSupported for C)
‘Y‘ with mnemonic QERUDCIY
(QER_Supported for C)
QERUDCW
(workloadStatus for
C, WORKLOADSTATUS for
COBOL,
WORKLOAD_STA
TUS for PL/I)
One of the following EBCDIC characters:
QERUDEU
(exportUsage for C,
EXPORT-USAGE
for COBOL,
EXPORT_USAGE
for PL/I)
A two-byte unsigned integer containing either:
"N" with mnemonic QERUDCWN
(QER_NotSupported for C, NOT-SUPPORTED
for COBOL, QER_NOT_SUPPORTED for PL/I)
"Y" with mnemonic QERUDCWY
(QER_Supported for C, SUPPORTED for
COBOL, QER_SUPPORTED for PL/I)
'0' with mnemonic QERUDEUS
(QER_UtilData_ExportSpool for C,
SPOOL for COBOL,
QER_UTILDATA_EXPORT_SPOOL for PL/I)
'1' with mnemonic QERUDEUN
(QER_UtilData_ExportNoSpool for C,
NO-SPOOL for COBOL,
QER_UTILDATA_EXPORT_NO_SPOOL for
PL/I)
Aggregate-support-list
Aggregate-support-list might be used to obtain the results for several queries useful when
establishing a connection.
Refers to the TDP whose TDP identifier is addressed by the QEPTIDP field and has length
specified by the QEPTLEN field.
Returns a list of pre-determined items that also can be queried individually. The format of,
and values returned for, each item are exactly the same as when that item is queried
individually. As new support-type items are added in the future, they will also be added to this
308
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 8: CLIv2 Query Routine
DBCHQE
aggregate list. Therefore, the length of the result may vary depending on the version of CLIv2
or TDP.
Note: Since there is only one return code for all items, item-specific errors cannot all be
reported. Instead, that item will return a value of 'N' (no support).
Response DBQERASL(DbqerASL for C)
Item
Code
Mnemonic
Field
Value
24
QEPIASL
QERASLTS
(semanticsStatus for C)
is Transaction- semantics-support
One of the following EBCDIC
characters:
‘N‘ with mnemonic QERTSMN
(QER_NotSupported for C)
(QERASLTSN for COBOL)
‘Y‘ with mnemonic QERTSMY
(QER_Supported for C)
(QERASLTSY for COBOL)
QERASLLC
(conformanceStatus for C)
is Language- conformance-support
One of the following EBCDIC
characters:
‘N‘ with mnemonic QERLCSN
(QER_NotSupported for C)
(QERASLLCN for COBOL)
‘Y‘ with mnemonic QERLCSY
(QER_Supported for C)
(QERASLLCY for COBOL)
QERASLUC (UpdatableCursorStatus
for C)
is Updatable-cursor-support
One of the following EBCDIC
characters:
‘N‘ with mnemonic QERUCRN
(QER_NotSupported for C)
(QERASLUCN for COBOL)
‘Y‘ with mnemonic QERUCRY
(QER_Supported for C)
(QERASLUCY for COBOL)
QERASLRI (referentialIntegrityStatus
for C)
is Referential- integrity-support
One of the following EBCDIC
characters:
‘N‘ with mnemonic QERRFIN
(QER_NotSupported for C)
(QERASLRIN for COBOL)
‘Y‘ with mnemonic QERRFIY
(QER_Supported for C)
(QERASLRIY for COBOL)
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
309
Chapter 8: CLIv2 Query Routine
DBCHQE
Response DBQERASL(DbqerASL for C)
Item
Code
Mnemonic
Field
Value
QERASLEP
(extendedParcelStatus for C)
is Extended-parcel- size-support
One of the following EBCDIC
characters:
‘N‘ with mnemonic QEREPSN
(QER_NotSupported for C)
(QERASLEPN for COBOL)
‘Y‘ with mnemonic QEREPSY
(QER_Supported for C)
(QERASLEPY for COBOL)
QERASLSS
(singleSignonStatus for C)
is Single-signon-support
One of the following EBCDIC
characters:
‘N‘ with mnemonic QERSSON
(QER_NotSupported for C)
(QERASLSSN for COBOL)
‘Y‘ with mnemonic QERSSOY
(QER_Supported for C)
(QERASLSSY for COBOL)
QERASLUP (upsertStatus for C)
is UPSERT-support
One of the following EBCDIC
characters:
‘N‘ with mnemonic QERUPSN
(QER_NotSupported for C)
(QERASLUPN for COBOL)
‘Y‘ with mnemonic QERUPSY
(QER_Supported for C)
(QERASLUPY for COBOL)
QERASLAO
(arrayOpsStatus for C)
is Array-operations-support
One of the following EBCDIC
characters:
‘N‘ with mnemonic QERAOPN
(QER_NotSupported for C)
‘Y‘ with mnemonic QERAOPY
(QER_Supported for C)
QERASLMI
(mergeIntoStatus for C)
is MERGE-INTO-support
This value is deprecated: new
development should use the
QERASLMU value later in this list.
One of the following EBCDIC
characters:
‘N‘ with mnemonic QERMRIN
(QER_NotSupported for C)
(QERASLMIN for COBOL)
‘Y‘ with mnemonic QERMRIY
(QER_Supported for C)
(QERASLMIY for COBOL)
310
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 8: CLIv2 Query Routine
DBCHQE
Response DBQERASL(DbqerASL for C)
Item
Code
Mnemonic
Field
Value
QERASLLO (lobStatus for C)
is Large-object-support
‘N‘ with mnemonic QERLOBN
(QER_NotSupported for C)
(QERASLLON for COBOL)
‘Y‘ with mnemonic QERLOBY
(QER_Supported for C)
(QERASLLOY for COBOL)
QERASLER (extendedResponseStatus
for C)
is Extended-response-support
‘N‘ with mnemonic QERERSN
(QER_NotSupported for C)
(QERASLERN for COBOL)
‘Y‘ with mnemonic QERERSY
(QER_Supported for C)
(QERASLERY for COBOL)
QERASLTT
(timingTypesStatus for C)
is Timestamp-types-support
One of the following EBCDIC
characters:
‘N‘ with mnemonic QERTMTN
(QER_NotSupported for C)
(QERASLTTN for COBOL)
‘Y‘ with mnemonic QERTMTY
(QER_Supported for C)
(QERASLTTY for COBOL)
QERASLEH (requestUsage for C)
is Expanded-parcel-header-usage
A two-byte unsigned integer
containing either:
‘N‘ with mnemonic QEREPHN
(QER_RequestUsageNone for C)
(QERASLEHN for COBOL)
‘1‘ with mnemonic QEREPHY
(QER_RequestUsageSubset1 for
C)
(QERASLEHY for COBOL)
‘2‘ with mnemonic QEREPHA
(QER_RequestUsageSubset2 for
C)
(QERASLEHI for COBOL)
QERASLRP
(responsePositioningStatus for C)
is Response-positioning-support
One of the following EBCDIC
characters:
‘N‘ with mnemonic QERRPON
(QER_NotSupported for C)
(QERASLRPN for COBOL)
‘Y‘ with mnemonic QERRPOI
(QER_Supported for C)
(QERASLRPI for COBOL)
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
311
Chapter 8: CLIv2 Query Routine
DBCHQE
Response DBQERASL(DbqerASL for C)
Item
Code
Mnemonic
Field
Value
QERASLES (statementStatusStatus for
C)
is Enhanced-statement-status-support
‘N‘ with mnemonic QERESSN
(QER_NotSupported for C)
(QERASLESN for COBOL)
‘Y‘ with mnemonic QERESSY
(QER_Supported for C)
(QERASLESY for COBOL)
QERASLUT
(userTypesStatus for C)
is User-defined-types-support
One of the following EBCDIC
characters:
‘N‘ with mnemonic QERUDTN
(QER_NotSupported for C)
(QERASLUTN for COBOL),
‘Y‘ with mnemonic QERUDTY
(QER_Supported for C)
(QERASLUTY for COBOL)
QERASLRA
(relaxedArgsStatus for C,
RELAXED-ARGS-STATUS for
COBOL, RELAXED_ARGS_STATUS
for PL/I)
is Relaxed-call-args-support
One of the following EBCDIC
characters:
'N' is QERRCAN
(QER_NotSupported for C,
NOT-SUPPORTED for COBOL,
QER_NOT_SUPPORTED
for PL/I)
'Y' is QERRCAY
(QER_Supported for C,
SUPPORTED for COBOL,
QER_SUPPORTED for PL/I)
QERASLSI
(statementInfoStatus for C,
STATEMENT-INFO-STATUS
for COBOL,
STATEMENT_INFO_STATUS
for PL/I)
is Statement-info-support
One of the following EBCDIC
characters:
'N' is QERSISN
(QER_NotSupported for C,
NOT-SUPPORTED for COBOL,
QER_NOT_SUPPORTED
for PL/I)
'Y' is QERSISY
(QER_Supported for C,
SUPPORTED for COBOL,
QER_SUPPORTED for PL/I
312
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 8: CLIv2 Query Routine
DBCHQE
Response DBQERASL(DbqerASL for C)
Item
Code
Mnemonic
Field
Value
QERASLID
(integerDecimalStatus for C,
INTEGE-DECIMAL-STATUS for
COBOL,
INTEGER-DECIMAL_STATUS
for PL/I)
is Statement-info-support
One of the following EBCDIC
characters:
'N' is QERIDEN
(QER_NotSupported for C,
NOT-SUPPORTED for COBOL,
QER_NOT_SUPPORTED
for PL/I)
'Y' is QERIDEY
(QER_Supported for C,
SUPPORTED for COBOL,
QER_SUPPORTED for PL/I)
QERASLRD
(returnDataStatus for C,
RETURN-DATA-STATUS for
COBOL, RETURN_DATA_STATUS
for PL/I)
is Return-Identity-Data-support
One of the following EBCDIC
characters:
'N' is QERRIDN
(QER_NotSupported for C,
NOT-SUPPORTED for COBOL,
QER_NOT_SUPPORTED
for PL/I)
'Y' is QERRIDY
(QER_Supported for C,
SUPPORTED for COBOL,
QER_SUPPORTED for PL/I)
QERASLRS
resultSetsStatus for C,
RESULT-SETS-STATUS for COBOL,
RESULT_SETS_STATUS for PL/I) is
Result-sets-support
One of the following EBCDIC
characters:
'N' is QERRSSN
(QER_NotSupported for C,
NOT-SUPPORTED for COBOL,
QER_NOT_SUPPORTED for PL/
I)
'Y' is QERRSSY (QER_Supported
for C, SUPPORTED for COBOL,
QER_SUPPORTED for PL/I).
QERASLQB
(queryBandStatus for C,
QUERYBAND-STATUS for COBOL,
QUERYBAND_STATUS for PL/I) is
QueryBand-support
One of the following EBCDIC
characters:
'N' is QERQBSN
(QER_NotSupported for C,
NOT-SUPPORTED for COBOL,
QER_NOT_SUPPORTED for PL/
I)
'Y' is QERQBSY (QER_Supported
for C, SUPPORTED for COBOL,
QER_SUPPORTED for PL/I)
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
313
Chapter 8: CLIv2 Query Routine
DBCHQE
Response DBQERASL(DbqerASL for C)
Item
Code
Mnemonic
Field
Value
QERASLCC (columnCorrStatus for C,
COLUMN-CORR-STATUS for
COBOL, COLUMN_CORR_STATUS
for PL/I) is Column-correlation-status
One of the following EBCDIC
characters:
'N' is QERCCSN
(QER_NotSupported for C,
NOT-SUPPORTED for COBOL,
QER_NOT_SUPPORTED for PL/
I)
'Y' is QERCCSY (QER_Supported
for C, SUPPORTED for COBOL,
QER_SUPPORTED for PL/I).
For applications that support
multiple releases of CLIv2, a
downlevel CLIv2 could return
binary zeroes, which is interpreted
as 'N'.
QERASLMU
(mergeIntoUsage for C,
MERGE-INTO-USAGE for COBOL,
MERGE_INTO_USAGE for PL/I) is
Merge-into-usage
A two-byte unsigned integer
containing one of the following
values:
0 is QERMIUN
(QER_MergeUsageNone for C,
NOT_SUPPORTED for COBOL,
QER_MERGE_USAGE_NONE
for PL/I)
1 is QERMIUS
(QER_MergeUsageSingleRow for
C, SINGLE-ROW for COBOL,
QER_MERGE_USAGE_SINGLE_
ROW for PL/I)
2 is QERMIUM
(QER_MergeUsageMultiRow for
C, MULTI-ROW for COBOL,
QER_MERGE_USAGE_MULTI_
ROW for PL/I)
QERASLLE
(loggingerrorsUsage for C,
LOGGING-ERRORS-USAGE for
COBOL,
LOGGING_ERRORS_USAGE for PL/
I) is Logging-errors-usage
A two-byte unsigned integer
containing one of the following
values:
0 is QERLEUN
(QER_LoggingUsageNone for C,
NOT_SUPPORTED for COBOL,
QER_LOGGING_USAGE_NONE
for PL/I),
1 is QERLEUM
(QER_LoggingUsageMerge for C,
QERASLLEM for COBOL,
QER_LOGGING_USAGE_MERG
E for PL/I)
314
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 8: CLIv2 Query Routine
DBCHQE
Response DBQERASL(DbqerASL for C)
Item
Code
Mnemonic
Field
Value
QERASLTO
(transformsOffUsage for C,
TRANSFORMS-OFF-USAGE
for COBOL,
TRANSFORMS_OFF_USAGE
for PL/I) is Transforms-off-usage
A two-byte unsigned integer
containing one of the following
values:
0 is QERTOUN
(QER_XformsOffUsageNone
for C,
NOT_SUPPORTED for COBOL,
QER_XFORMS_OFF_NONE
for PL/I),
1 is QERTOUS
(QER_XformsOffUsageStruct for
C, STRUCTURED for COBOL,
QER_XFORMS_OFF_STRUCT
for PL/I)
2 is QERTOUP
(QER_XformsOffUsagePeriod for
C, PERIOD for COBOL,
QER_XFORMS_OFF_PERIOD
for PL/I)
Response-positioning-support
Response-positioning-support might be used to ascertain whether the DBCAREA
Positioning-action option may be specified without being rejected by CLIv2.
Refers to the TDP whose TDP identifier is addressed by the QEPTIDP field and has length
specified by the QEPTLEN field.
Returns whether response positioning is supported by the Teradata Database.
This item is also included in the Aggregate-support-list query item.
Response DBQERRPO (DbqerRPo for C)
Item
Code
Mnemonic
Field
Value
25
QEPIRPO
QERRPO
('status' for C)
One of the following EBCDIC
characters:
‘N‘ with mnemonic QERRPON
(QER_NotSupported for C)
‘Y‘ with mnemonic QERRPOY
(QER_Supported for C)
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
315
Chapter 8: CLIv2 Query Routine
DBCHQE
Data-encryption-support
Data-encryption-support might be used to ascertain whether sensitive data is encrypted when
sent to or received from the Teradata Database.
Refers to the session whose CLIv2 connection number is specified in the QEPCONN field.
Returns whether data encryption is supported by TDP and the Teradata Database.
Note: Currently no version of TDP supports Data-encryption.
Response DBQERDEN (DbqerDEN for C)
Item
Code
Mnemonic
Field
Value
26
QEPIDEN
QERDEN
('status' for C)
One of the following EBCDIC
characters:
‘N‘ with mnemonic QERDENN
(QER_NotSupported for C)
‘Y‘ with mnemonic QERDENY
(QER_Supported for C)
Request-message-release
Request-message-release might be used to aid in problem diagnosis.
Refers to the session whose CLIv2 connection number is specified in the QEPCONN field and
the request whose CLIv2 request number is specified in the QEPRQST field.
Returns the CLIv2 release identifier and any customization information for the message table
that will be used for the request.
Note: The intent of the data is not to deduce CLIv2 functionality, but simply to provide the
release information for whatever diagnostic use it may be. The value should not be parsed for
any reason since its format is subject to change.
Response QEPIRMR (DbqerRMR for C)
Item Code
Mnemonic
Field
Value
27
QEPIRMR
DBQERRMR
('release' for C)
The returned information consists of up to
forty-eight EBCDIC characters, consisting of
one or two identifiers separated by a comma.
The first, which begins with 'CL2.', identifies the
CLIv2 release identifier: the two-character
offering number; the one-character major
release number and one-character minor release
number; the two-character maintenance release
number; and an optional two-character E-tape
number; each separated by periods.
316
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 8: CLIv2 Query Routine
DBCHQE
Response QEPIRMR (DbqerRMR for C)
Item Code
Mnemonic
Field
Value
QERRMR
('release' for C)
The second presents any optional customization
identification provided by the message table. It
is free-format information between one and
thirty-two characters.
Available-character-sets
Available-character-sets might be used to allow selection of a character set name from a list of
all character sets supported by the Teradata Database.
Refers the TDP whose TDP identifier is addressed by the QEPTIDP field and has length
specified by the QEPTLEN field.
Returns the names of the character sets available on the server. The response consists of four
fixed fields followed by a variable number of character set names. As many whole character set
names as will fit into the response area whose length is indicated by QEPRALEN will be
returned. If all names are not returned, another query may be issued specifying the returned
token to indicate that names after those already returned are processed.
Response DBQERACS (DbqerACS for C)
Item Code
Mnemonic
Field
Value
28
QEPIACS
QERACSTK
('token' for C)
a 4byte token to be placed into
QEPTOKEN to retrieve any additional
character set names. The content of the
token is undefined and must not be
altered by the application.
QERACSNR
(namesRemaining for C)
a 2byte unsigned integer indicating the
number of character set names not
returned.
QERACSNP
(namesPresent for C)
a 2byte unsigned integer indicating the
number of character set names returned.
QERACSLN
(nameLen for C)
a 2byte unsigned integer indicating the
length of each character set name.
Immediately following are the number of
names, in EBCDIC, indicated by
QERACSNP, each of length indicated by
QERACSLN.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
317
Chapter 8: CLIv2 Query Routine
DBCHQE
Enhanced-statement-status-support
Enhanced-statement-status-support might be used to ascertain whether the DBCAREA
Statement-status option may request that ResultSummary parcels be returned by the Teradata
Database.
Refers to the TDP whose TDP identifier is addressed by the QEPTIDP field and has length
specified by the QEPTLEN field.
Returns whether Enhanced-statement-status is supported by the Teradata Database.
This item is also included in the Aggregate-support-list query item.
Response DBQERES (DbqerES for C)
Item
Code
Mnemonic
Field
Value
29
QEPIESS
QERESS
('status' for C)
One of the following EBCDIC characters:
‘N‘ with mnemonic ERESSN
(QER_NotSupported for C)
Does not supports enhanced statement status.
‘Y‘ with mnemonic QERESSY
(QER_Supported for C)
Supports enhanced statement status.
User-defined-types-support
User-defined-types-support might be used to ascertain whether the Teradata Database will
allow creation of user-defined SQL data types.
Refers to the TDP whose TDP identifier is addressed by the QEPTIDP field and has length
specified by the QEPTLEN field.
Returns whether User-defined-types is supported by the Teradata Database.
This item is also included in the Aggregate-support-list query item.
Response DBQERUT (DbqerUT for C)
Item Code
Mnemonic
Field
Value
30
QEPIUDT
QERUDT
('status' for C)
One of the following EBCDIC characters:
‘N‘ with mnemonic QERUDTN
(QER_NotSupported for C)
‘Y‘ with mnemonic QERUDTY
(QER_Supported for C)
APH-response
There is no known use for the APH-response query.
318
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 8: CLIv2 Query Routine
DBCHQE
Refers to the TDP whose TDP identifier addressed by the QEPTIDP field and has length
specified by the QEPTLEN field.
Returns an indication of which, if any, response parcels may exceed 65535 bytes.
Response DBQERAPH (DbqerAPH for C)
Item
Code
Mnemonic
Field
Value
31
QEPIAPH
QERAPH
(responseUsage for C)
A two-byte unsigned integer containing either:
‘0‘ with mnemonic QERAPHN:
(QER_ResponseUsageNone for C)
The maximum size of all response parcels is
limited to 65535
‘1‘ with mnemonic QERAPHI:
(QER_ResponseUsageSubset1 for C)
The maximum size of the following parcel
flavors may exceed 65535:
8-12, 17-19, 20-29, 33-35, 46-47, 51, 71, 86,
105, 120-122, 125, 144-146, 149-152
Available-logon-mechanisms
When a TDPid is specified, Available-logon-mechanisms might be used to allow selection of a
logon mechanism from a list of all usable logon mechanisms, which also indicates a default
mechanism. When a TDPid is not supplied, there is no known use for the query.
If no TDP identifier is provided, refers to the logon mechanisms supported by CLIv2 itself. If
a TDP identifier is provided by the QEPTIDP field of length specified by the QEPTLEN field,
refers to the logon mechanisms supported by both CLIv2 and the Teradata Database.
Returns a list of logon mechanism names supported. The response consists of four fixed fields
followed by a variable number of entries. As many whole entries as will fit into the response
area whose length is indicated by QEPRALEN will be returned. If all entries are not returned,
another query may be issued specifying the returned token to indicate that entries after those
already returned are processed.
Note: Logon mechanisms are currently not supported for a channel-connected system.
Response DBQERALM (DbqerALM for C)
Item
Code
Mnemonic
Field
Value
32
QEPIALM
QERALMTK
('token' for C, COBOL,
and PL/I)
A 4 byte token to be placed into
QEPTOKEN to retrieve any additional
entries. The content of the token is
undefined and must not be altered by the
application.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
319
Chapter 8: CLIv2 Query Routine
DBCHQE
Response DBQERALM (DbqerALM for C)
Item
Code
Mnemonic
Field
Value
QERALMNR
(entriesRemaining for C,
ENTRIES-REMAINING
for COBOL,
ENTRIES_REMAINING
for PL/I)
A 2byte unsigned integer indicating the
number of entries not returned.
QERALMNP
(entriesPresent for C,
ENTRIES-PRESENT for
COBOL,
ENTRIES_PRESENT for
PL/I)
A 2byte unsigned integer indicating the
number of entries returned.
QERALMLN
(entryLen for C,
ENTRY-LEN for
COBOL, ENTRY_LEN
for PL/I)
A 2byte unsigned integer indicating the
length of each entry.
Immediately following are the number of entries indicated by
QERALMNP, each of length indicated by QERALMLN. Each entry
consists of:
QERALENM
('name' for C, COBOL,
and PL/I)
An 8byte logon mechanism name, in
EBCDIC.
QERALEA
('attr' for C, COBOL,
and PL/I)
A 1 byte EBCDIC value containing either
"D", with mnemonic QERALEAD
('QER_MechAttrDefault' for C,
QER_MECH_ATTR_DEFAULT for PL/I) if
this is the default mechanism, or a space,
with mnemonic QERALEAN
(QER_MechAttrNone for C, NONE for
COBOL, QER_MECH_ATTR_NONE for
PL/I) otherwise. The default attribute is not
meaningful to CLIv2 but may be used by the
application in selecting a mechanism.
Seven unused bytes.
Default-character-set
Default-character-set name might be used to determine if the character set that will be used if
none is specified is acceptable to the application.
Refers to the TDP whose TDP identifier is addressed by the QEPTIDP field and has length
specified by the QEPTLEN field.
Returns the default character set name from the HSHSPB or, if no such default exists, the
Teradata Database's default character set name. Note that any default character set code in the
320
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 8: CLIv2 Query Routine
DBCHQE
HSHSPB is ignored since its use has long been deprecated, so the Database default is returned
with a return code of 1127 to warn of the ignored code.
DBQERDCS (DbqerDCS for C)
Item Code
Mnemonic
Field
Value
33
QEPIDCS
QERDCS
('name' for C,
COBOL, and PL/I)
Thirty EBCDIC characters, left-justified,
padded on the right with spaces.
Database-release
Database-release might be used to aid in problem diagnosis.
Refers to the Teradata Database associated with the TDP whose TDP identifier is
addressed by the QEPTIDP field and has length specified by the QEPTLEN field.
Returns the Teradata Database's release and version. The response consists of two fields
totalling sixty-two bytes.
Note: The intent of the data is not to deduce Teradata Database functionality, but simply to
provide the release and version information for whatever diagnostic use they may be. The
values should not be parsed for any reason since their format is subject to change.
Response DBQERDBR (DbqerDBR for C)
Item
Code
Mnemonic
Fields
Value
34
QEPIDBR
QERDBRR
('release' for C and
PL/I)
Thirty EBCDIC characters identifying the
Database release. This information is the
EBCDIC equivalent of the InfoData field for
the row whose InfoKey column contains
'RELEASE' in DBC.DBCInfoTbl.
QERDBRV
('version' for C, COBOL,
and PL/I)
Thirty-two EBCDIC characters identifying
the Database version. This information is
the EBCDIC equivalent of up to the first
thirty-two characters of the InfoData field
for the row whose InfoKey column contains
'VERSION' in DBC.DBCInfoTbl, leftjustified and padded with spaces as
necessary.
CLIv2-limits
CLIv2-limits might be used either to choose CLIv2 settings to optimize its execution for the
accessed Teradata Database or to prevent errors caused by exceeding limits.
Refers to the Teradata Database associated with the TDP whose TDP identifier is addressed by
the QEPTIDP field and has length specified by the QEPTLEN field.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
321
Chapter 8: CLIv2 Query Routine
DBCHQE
Returns limits for the Teradata Database affecting an application's values for CLIv2 settings.
The response consists of four fields totalling thirty-two bytes.
DBQERC2L (DbqerC2L for C)
Item
Code
Mnemonic
Fields
Value
35
QEPIC2L
QERC2LQL
('requestLen' for C,
REQUEST-LEN for
COBOL,
REQUEST_LEN for PL/
I) is the maximum
Request-length
An eight-byte unsigned integer. In C
compilers not supporting 64bit integers, an
array named 'requestLenHalf' consisting of
two four-byte unsigned integers, each
containing four bytes of the value, is used.
QERC2LGL
('segmentLen' for C,
SEGMENT-LEN for
COBOL,
SEGMENT_LEN for PL/
I) is the maximum
segment Request-length
for SQL Stored
Procedures (refer to
Chapter 17: “Stored
Procedures”)
An eight-byte unsigned integer. In C
compilers not supporting 64bit integers, an
array named 'segmentLenHalf' consisting of
two four-byte unsigned integers, each
containing four bytes of the value, is used.
QERC2LUL ('usingLen'
for C, USING-LEN for
COBOL, USING_LEN
for PL/I) is the
maximum
Using-data-len
An eight-byte unsigned integer. In C
compilers not supporting 64bit integers, an
array named 'usingLenHalf' consisting of
two four-byte unsigned integers, each
containing four bytes of the value, is used.
QERC2LSL
('responseLen' for C,
RESPONSE-LEN for
COBOL,
RESPONSE_LEN for PL/
I) is the maximum
Response-len
An eight-byte unsigned integer. In C
compilers not supporting 64bit integers, an
array named 'responseLenHalf' consisting of
two four-byte unsigned integers, each
containing four bytes of the value, is used.
SQL-limits
The SQL-limits might be used either to construct SQL statements to optimize its execution for
the accessed Teradata Database or to prevent errors caused by exceeding limits.
Refers to the Teradata Database associated with the TDP whose TDP identifier is addressed by
the QEPTIDP field and has length specified by the QEPTLEN field.
Returns limits for the Teradata Database affecting an application's use of SQL statements. The
response consists of twenty-four field totalling one-hundred four bytes.
322
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 8: CLIv2 Query Routine
DBCHQE
DBQERSQL (DbqerSQL for C)
Item
Code
Mnemonic
Fields
Value
36
QEPISQL
QERSQLRL ('rowLen' for C,
ROW-LEN for COBOL,
ROW_LEN for PL/I) is the
number of usable bytes in a
database row.
An eight-byte unsigned integer. In C
compilers not supporting 64bit
integers, an array named
'rowLenHalf' consisting of two fourbyte unsigned integers, each
containing four bytes of the value, is
used.
QERSQLLL ('lobLen' for C,
LOB-LEN for COBOL,
LOB_LEN for PL/I) is the
maximum number of bytes for a
large object, either a binary or
character object.
An eight-byte unsigned integer. In C
compilers not supporting 64bit
integers, an array named 'lobLenHalf'
consisting of two four-byte unsigned
integers, each containing four bytes of
the value, is used.
QERSQLNL ('nameCharlen' for
C, NAME-CHARLEN for
COBOL, NAME_CHARLEN for
PL/I) is the maximum number of
single-byte characters in a
Teradata name (such as a userid,
table name, column name). The
presence of multi-byte characters
will correspondingly lower the
effective maximum.
A four-byte unsigned integer.
QERSQLKT ('tableColumns' for
C, TABLE-COLUMNS for
COBOL, TABLE_COLUMNS
for PL/I) is the maximum
number of columns in a table.
A four-byte unsigned integer.
QERSQLTS ('selectTables' for C,
SELECT-TABLES for COBOL,
SELECT_TABLES for PL/I) is the
maximum number of tables that
may be specified in a SELECT
statement.
A four-byte unsigned integer.
QERSQLKS
('expressionColumns' for C,
EXPRESSION-COLUMNS for
COBOL,
EXPRESSION_COLUMNS for
PL/I) is the maximum number of
columns that may be specified in
a SELECT statement expression.
A four-byte unsigned integer.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
323
Chapter 8: CLIv2 Query Routine
DBCHQE
DBQERSQL (DbqerSQL for C)
Item
Code
324
Mnemonic
Fields
Value
QERSQLKG ('groupbyColumns'
for C, GROUPBY-COLUMNS
for COBOL,
GROUPBY_COLUMNS for PL/
I) is the maximum number of
columns that may be specified in
a GROUPBY SQL clause.
A four-byte unsigned integer.
QERSQLKO ('orderbyColumns'
for C,
ORDERBY-COLUMNS
for COBOL,
ORDERBY_COLUMNS for PL/
I) is the maximum number of
columns that may be specified in
a ORDERBY SQL clause.
A four-byte unsigned integer.
QERSQLLC ('charLitCharlen'
for C, CHAR-LIT-CHARLEN
for COBOL,
CHAR_LIT_CHARLEN for PL/
I) is the maximum number of
single-byte characters for a
CHARACTER literal (a string of
characters enclosed by
apostrophes). The presence of
multi-byte characters will
correspondingly lower the
effective maximum.
A four-byte unsigned integer.
QERSQLLH ('hexLitCharlen' for
C, HEX-LIT-CHARLEN for
COBOL, HEX_LIT_CHARLEN
for PL/I) is the maximum
number of single-byte characters
for a HEXADECIMAL literal (a
string of hexadecimal characters
enclosed by apostrophes and
followed by at least the letter X).
The presence of multi-byte
characters will correspondingly
lower the effective maximum.
A four-byte unsigned integer.
QERSQLKL ('columnLen' for C,
COLUMN-LEN
for COBOL, COLUMN_LEN for
PL/I) is the maximum number of
bytes for a column.
A four-byte unsigned integer.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 8: CLIv2 Query Routine
DBCHQE
DBQERSQL (DbqerSQL for C)
Item
Code
Mnemonic
Fields
Value
QERSQLC ('charCharlen' for C,
CHAR-CHARLEN for COBOL,
CHAR_CHARLEN for PL/I) is
the maximum number of singlebyte characters in a column of
data type CHARACTER. The
presence of multi-byte characters
will correspondingly lower the
effective maximum.
A four-byte unsigned integer.
QERSQLVC ('varcharCharlen'
for C, VARCHAR-CHARLEN
for COBOL,
VARCHAR_CHARLEN for PL/
I) is the maximum number of
single-byte characters in a
column of data type VARCHAR.
The presence of multi-byte
characters will correspondingly
lower the effective maximum.
A four-byte unsigned integer.
QERSQLG ('graphicCharlen' for
C, GRAPHIC-CHARLEN for
COBOL, GRAPHIC_CHARLEN
for PL/I) is the maximum
number of two-byte characters in
a column of data type
GRAPHIC.
A four-byte unsigned integer.
QERSQLVG
('vargraphicCharlen' for C,
VARGRAPHIC-CHARLEN for
COBOL,
VARGRAPHIC_CHARLEN for
PL/I) is the maximum number of
two-byte characters in a column
of data type VARGRAPHIC.
A four-byte unsigned integer.
QERSQLB ('byteLen' for C,
BYTE-LEN for COBOL,
BYTE_LEN for PL/I) is the
maximum number of bytes in a
column of data type BYTE.
A four-byte unsigned integer.
QERSQLVB ('varbyteLen' for C,
VARBYTE-LEN for COBOL,
VARBYTE_LEN for PL/I) is the
maximum number of bytes in a
column of data type VARBYTE.
A four-byte unsigned integer.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
325
Chapter 8: CLIv2 Query Routine
DBCHQE
DBQERSQL (DbqerSQL for C)
Item
Code
326
Mnemonic
Fields
Value
QERSQLPD ('decimalPrecision'
for C, DECIMAL-PRECISION
for COBOL,
DECIMAL_PRECISION for PL/
I) is the maximum precision
(number of digits) in a column
of data type DECIMAL or
NUMERIC.
A four-byte unsigned integer.
QERSQLET ('timeScale' for C,
TIME-SCALE for COBOL,
TIME_SCALE for PL/I) is the
maximum scale (number of
digits to the right of the decimal
point; sometimes referred to as
the fractionalized precision) in a
column of data type TIME
[WITH TIME ZONE].
A four-byte unsigned integer.
QERSQLEP ('timestampScale'
for C, TIMESTAMP-SCALE for
COBOL, TIMESTAMP_SCALE
for PL/I) is the maximum scale
(number of digits to the right of
the decimal point; sometimes
referred to as the fractionalized
precision) in a column of data
type TIMESTAMP [WITH
TIME ZONE].
A four-byte unsigned integer.
QERSQLES
('intervalSecondScale' for C,
INTERVAL-SECOND-SCALE
for COBOL,
INTERVAL_SECOND_SCALE
for PL/I) is the maximum scale
(number of digits to the right of
the decimal point; sometimes
referred to as the fractionalized
precision) in a column of data
type INTERVAL DAY TO
SECOND, INTERVAL HOUR
TO SECOND, INTERVAL
MINUTE TO SECOND, or
INTERVAL SECOND.
A four-byte unsigned integer.
QERSQLUN ('usingValues' for
C, USING-VALUES for COBOL,
USING_VALUES for PL/I) is the
maximum number Teradata
SQL USING row descriptor
fields.
A four-byte unsigned integer.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 8: CLIv2 Query Routine
DBCHQE
DBQERSQL (DbqerSQL for C)
Item
Code
Mnemonic
Fields
Value
QERSQLPQ ('requestParms' for
C, REQUEST-PARMS for
COBOL, REQUEST_PARMS for
PL/I) is the maximum number of
variable names in a Teradata/
SQL parameterized query
request.
A four-byte unsigned integer.
QERSQLPP ('procedureParms'
for C, PROCEDURE-PARMS for
COBOL, PROCEDURE_PARMS
for PL/I) is the maximum
number of parameters to a stored
procedure.
A four-byte unsigned integer.
Relaxed-call-args
The Relaxed-call-args might be used to simplify construction of SQL CALL statements.
Refers to the Teradata Database associated with the TDP whose TDP identifier is addressed by
the QEPTIDP field and has length specified by the QEPTLEN field.
Returns whether CALL OUT-type argument requirements are relaxed by allowing such
names on the CALL statement to differ from those on the PROCEDURE statement, to be
specified as host variables (':name'), or to be specified as placeholders ('?'). These host variable
names need not be defined in the USING clause.
This item is also included in the Aggregate-support-list query item.
Response DBQERRCA (DbqerRCA for C)
Item
Code
Mnemonic
Field
Value
37
QEPIRCA
QERRCA
('status' for C and PL/I)
One of the following EBCDIC
characters:
'N' with mnemonic QERRCAN
(QER_NotSupported for C,
NOT-SUPPORTED for COBOL,
QER_NOT_SUPPORTED
for PL/I)
'Y' with mnemonic QERRCAY
(QER_Supported for C,
SUPPORTED for COBOL,
QER_SUPPORTED for PL/I)
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
327
Chapter 8: CLIv2 Query Routine
DBCHQE
Statement-info-status
Statement-info-status might be used to ascertain if the StatementInformation parcels may be
requested by the DBCAREA Return-statement-info option.
Refers to the Teradata Database associated with the TDP whose TDP identifier is addressed by
the QEPTIDP field and has length specified by the QEPTLEN field.
Returns whether StatementInformation parcels are supported.
This item is also included in the Aggregate-support-list query item.
DBQERSIS (DbqerSIS for C)
Item
Code
Mnemonic
Field
Value
38
QEPISIS
QERSIS
('status' for C and PL/I)
One of the following EBCDIC
characters:
'N' with mnemonic QERSISN
(QER_NotSupported for C,
NOT-SUPPORTED for COBOL,
QER_NOT_SUPPORTED)
for PL/I)
'Y' with mnemonic QERSISY
(QER_Supported for C,
SUPPORTED for COBOL,
QER_SUPPORTED) for PL/I)
Integer/decimal-enlargement
Integer/decimal-enlargement might be used to ascertain wheter the DBCAREA
Max-decimal-returned option is supported by Teradata Database.
Refers to the Teradata Database associated with the TDP whose TDP identifier is addressed by
the QEPTIDP field and has length specified by the QEPTLEN field.
Returns whether the maximum size of the decimal data type in responses may be specified.
This item is also included in the Aggregate-support-list query item.
DBQERIDE (DbqerIDE for C
Item
Code
Mnemonic
Field
Value
39
QEPIIDE
QERIDE
('status' for C and PL/I)
One of the following EBCDIC
characters:
'N' with mnemonic QERIDEN
(QER_NotSupported for C,
NOT-SUPPORTED for COBOL,
QER_NOT_SUPPORTED)
for PL/I)
328
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 8: CLIv2 Query Routine
DBCHQE
DBQERIDE (DbqerIDE for C
Item
Code
Mnemonic
Field
Value
'Y' with mnemonic QERSISY
(QER_Supported for C,
SUPPORTED for COBOL,
QER_SUPPORTED) for PL/I)
Return-Identity-Data-support
Return-Identity-Data-support might be used to ascertain whether the DBCAREA
Return-identity-data option may be specified to request data be returned in response to an
SQL Insert operation when Identity columns are involved.
Refers to the Teradata Database associated with the TDP whose TDP identifier is addressed by
the QEPTIDP field and has length specified by the QEPTLEN field.
Returns whether returning data for SQL Inserts when Identity columns are involved.
This item is also included in the Aggregate-support-list query item.
DBQERRID (DbqerRID for C)
Item
Code
Mnemonic
Field
Value
40
QEPIRID
QERRID
('status' for C and PL/I)
One of the following EBCDIC
characters:
'N' with mnemonic QERRIDN
(QER_NotSupported for C,
NOT-SUPPORTED for COBOL,
QER_NOT_SUPPORTED)
for PL/I)
'Y' with mnemonic QERRIDY
(QER_Supported for C,
SUPPORTED for COBOL,
QER_SUPPORTED) for PL/I)
Result-sets-support
Result-sets-support might be used to ascertain whether the DBCAREA Result-sets-OK or
Return-Result-to options may be specified.
Refers to the Teradata Database associated with the TDP whose TDP identifier is addressed by
the QEPTIDP field and has length specified by the QEPTLEN field.
Returns whether stored procedures may return the results of their SQL statements to the
application.
This item is also included in the Aggregate-support-list query item.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
329
Chapter 8: CLIv2 Query Routine
DBCHQE
Response DBQERRSS (DbqerRSS for C)
Item
Code
Mnemonic
Field
Value
41
QEPIRSS
QERRSS
('status' for C and PL/I)
One of the following EBCDIC
characters:
One of the following EBCDIC
characters: 'N' with mnemonic
QERRSSN (QER_NotSupported
for C, NOT-SUPPORTED for
COBOL,
QER_NOT_SUPPORTED for PL/
I)
'Y' with mnemonic QERRSSY
(QER_Supported for C,
SUPPORTED for COBOL,
QER_SUPPORTED for PL/I)
QueryBand-support
QueryBand-support might be used to ascertain whether the Teradata SQL SET
QUERY_BAND statement may be used to associate descriptive information with a session or
transaction.
Refers to the Teradata Database associated with the TDP whose TDP identifier is addressed by
the QEPTIDP field and has length specified by the QEPTLEN field.
Returns whether Teradata Database supports the SQL SET QUERY_BAND statement.
This item is also included in the Aggregate-support-list query item.
Response DBQERQBS (DbqerQBS for C)
Item
Code
Mnemonic
Field
Value
42
QEPIQBS
QERQBS
('status' for C and PL/I)
One of the following EBCDIC
characters:
'N' with mnemonic QERQBSN
(QER_NotSupported for C,
NOT-SUPPORTED for COBOL,
QER_NOT_SUPPORTED for PL/
I)
'Y' with mnemonic QERQBSY
(QER_Supported for C,
SUPPORTED for COBOL,
QER_SUPPORTED for PL/I)
330
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 8: CLIv2 Query Routine
DBCHQE
Merge-into-usage
Merge-into-usage might be used to ascertain the degree to which the Database supports the
SQL MERGE INTO statement.
Refers to the Teradata Database associated with the TDP whose TDP identifier is addressed by
the QEPTIDP field and has length specified by the QEPTLEN field.
Returns the degree of support for the SQL MERGE INTO statement.
This item is also included in the Aggregate-support-list query item.
DBQERMIU (DbqerMIU for C)
Item
Code
Mnemonic
Field
Value
43
QEPIMIU
QERMIU
('usage' for C and PL/I)
A two-byte unsigned integer
containing one of the following
values:
0 with mnemonic QERMIUN
(QER_MergeUsageNone for C,
NOT-SUPPORTED for COBOL,
QER_NOT_SUPPORTED for PL/
I) if the statement is not supported.
(This is equivalent to an 'N' for the
deprecated Merge-into-support
query.)
1 with mnemonic QERMIUS
(QER_MergeUsageSingleRow for
C, SINGLE-ROW for COBOL,
QER_MERGE_USAGE_SINGLE_
ROW for PL/I) if only single-row
MERGE INTO is supported. (This
is equivalent to a 'Y' for the
deprecated Merge-into-support
query.)
2 with mnemonic QERMIUM
(QER_MergeUsageMultiRow for
C, MULTI-ROW for COBOL,
QER_MERGE_USAGE_MULTI_R
OW for PL/I) if multi-row MERGE
INTO is supported.
Logging-errors-usage
Logging-errors-usage might be used to ascertain the degree to which the Database supports
the Teradata SQL LOGGING ERRORS clause.
Refers to the Teradata Database associated with the TDP whose TDP identifier is addressed by
the QEPTIDP field and has length specified by the QEPTLEN field.
Returns the degree of support for the Teradata SQL LOGGING ERRORS clause.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
331
Chapter 8: CLIv2 Query Routine
DBCHQE
This item is also included in the Aggregate-support-list query item.
DBQERLEU (DbqerLEU for C)
Item
Code
Mnemonic
Field
Value
44
QEPILEU
QEPILEU
('usage' for C and PL/I)
A two-byte unsigned integer
containing one of the following
values:
0 with mnemonic QERLEUN
(QER_LoggingUsageNone for C,
NOT-SUPPORTED for COBOL,
QER_LOGGING_USAGE_NONE
for PL/I) if the clause is not
supported.
1 with mnemonic QERLEUM
(QER_LoggingUsageMerge for C,
QERLEUM for COBOL,
QER_LOGGING_USAGE_MERG
E for PL/I) if the clause is
supported for MERGE INTO,
INSERT, and SELECT statements.
Procedure-data
Procedure-data might be used by an External Stored Procedure to ascertain whether the
DBCAREA Use-default-conn option is honored.
Refers to the CLIv2 being invoked.
Returns information for use by a External Stored Procedure. New items may be added;
therefore, the length of the result may vary depending on the version of CLIv2 or Teradata
Database.
DBQERPD (DbqerPD for C)
332
Item
Code
Mnemonic
Field
Value
45
QEPIPD
QERPDDC
('dfltConnStatus' for C,
DFLT-CONN-STATUS for
COBOL, DFLT_CONN_STATUS
for PL/I)
One of the following EBCDIC
characters:
'N' with mnemonic QERPDDCN
(QER_NotSupported for C,
NOT-SUPPORTED for COBOL,
QER_NOT_SUPPORTED for PL/
I) if the DBCAREA
Use-default-conn option is not
honored.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 8: CLIv2 Query Routine
DBCHQE
DBQERPD (DbqerPD for C)
Item
Code
Mnemonic
Field
Value
'Y' with mnemonic QERPDDCY
(QER_Supported for C,
SUPPORTED for COBOL,
QER_SUPPORTED for PL/I) if the
DBCAREA Use-default-conn
option is honored.
Session-character-set
Session-character-set obtains the name of a character set that is not explicitly specified.
Refers to the session whose CLIv2 connection number is specified in the QEPCONN field.
Returns the name of the session character set.
Response DBQERSCS (DbqerSCS for C)
Item
Code
Mnemonic
Field
Value
46
QEPISCS
QERSCS
('name' for C)
Between 1 and 30 EBCDIC characters.
Column-correlation-support
Use Column-correlation-support to ascertain whether the Teradata SQL CREATE
CORRELATION statement is supported.
Refers to the Teradata Database associated with the TDP, whose TDP identifier is addressed
by the QEPTIDP field, and whose length is specified by the QEPTLEN field.
Returns information about whether Teradata Database supports SQL CREATE, UPDATE,
DROP, and HELP CORRELATION statements.
This item is also included in the Aggregate-support-list query item.
Response DBQERCCS (DbqerCCS for C)
Item
Code
Mnemonic
Field
Value
47
QEPICCS
QERCCS
('status' for C and
PL/I)
One of the following EBCDIC characters:
'N' with mnemonic QERCCSN
(QER_NotSupported for C, NOT-SUPPORTED
for COBOL, QER_NOT_SUPPORTED for PL/I) '
Y' with mnemonic QERCCSY (QER_Supported
for C, SUPPORTED for COBOL,
QER_SUPPORTED for PL/I)
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
333
Chapter 8: CLIv2 Query Routine
DBCHQE
Utility-session
Utility-session is used internally only by Teradata utilities, and is not intended for other
applications.
Refers to the session whose CLIv2 connection number is specified in the QEPCONN field.
Returns information for internal use by Teradata utilities. Because new items might be added
in the future, the length of the result might vary depending on the active version of CLIv2 or
TDP.
Response DBQERIUS (DbqerUS for C)
Item
Code
Mnemonic
Field
Value
48
QEPIUS
QERUSNI
('nodeid' for C,
NODE-ID for Cobol, and
NODE_ID for PL/I))
A two-byte unsigned integer containing the
unformatted Teradata Database node-id
associated with the session. A value of zero
indicates that the node-id is not available.
Note: Currently, no version of the Teradata
Database provides the node-id to
channel-attached systems, so the value is
always zero.
Database-access-path
Use Database-access-path to find the TDPid used, regardless of how it was determined.
Refers to the session whose CLIv2 connection number is specified in the QEPCONN field.
Returns the path used to access the request Teradata Database. On channel-attached systems,
the path is the TDPid. The value is also returned in the DBCAREA Output-path-id field.
This item is included in the Aggregate-support-list query item.
Response DBQERDAP (DbqerDAP for C)
Item
Code
Mnemonic
Field
Value
49
QEPIDAP
QERDAP
('path' for C,
COBOL, and PL/I)
One of the following:
• If the QEP Varying-result-format is specified
as QEPVRFC, a variable number of EBCDIC
characters.
• If the QEP Varying-result-format is specified
as QEPVRF2C, a 2-byte unsigned integer
followed by that number of EBCDIC
characters.
The returned value contains no leading or trailing blanks.
334
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 8: CLIv2 Query Routine
DBCHQE
Trusted-session-support
Of no use to normal applications. If an application establishes its own Teradata session and
subsequently uses that session to perform its own requests using the security credentials of
another userid, then Trusted-session-support determines whether the Teradata SQL SET
QUERY_BAND PROXYUSER is honored rather than silently ignored.
Refers to the Teradata Database whose TDP identifier is both addressed in the QEPTIDP field
and has its length specified by the QEPTLEN field.
Returns whether a Teradata Database honors rather than ignores the Teradata SQL SET
QUERY_BAND PROXYUSER statement.
Response DBQERTSS (DbqerTSS for C)
Item
Code
Mnemonic
Field
Value
50
QEPITSS
QERLTSS
('status' for C and
PL/I)
One of the following EBCDIC:
• 'N' with mnemonic QERTSSN
(QER_NotSupported for C,
NOT-SUPPORTED for COBOL,
QER_NOT_SUPPORTED for PL/I)
• 'Y' with mnemonic QERTSSY
(QER_Supported for C, SUPPORTED for
COBOL, QER_SUPPORTED for PL/I)
LOB-Name-support
Determines whether a DEFERRED LOB can be identified by name.
Refers to the Teradata Database whose TDP identifier is both addressed in the QEPTIDP field
and has its length specified by the QEPTLEN field.
Returns whether the BY NAME phrase is permitted in the USING row descriptor in the
request string.
Response DBQERLNS (DbqerLNS for C)
Item
Code
Mnemonic
Field
Value
51
QEPILNS
QERLNS
('status' for C and
PL/I)
One of the following EBCDIC:
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
• 'N' with mnemonic QERLNSN
(QER_NotSupported for C,
NOT-SUPPORTED for COBOL,
QER_NOT_SUPPORTED for PL/I)
• 'Y' with mnemonic QERLNSY
(QER_Supported for C, SUPPORTED for
COBOL, ER_SUPPORTED for PL/I)
335
Chapter 8: CLIv2 Query Routine
DBCHQE
Transforms-off-usage
Transforms-off-usage might be used to ascertain the degree to which the Database supports
referencing the constituent attributes of SQL Structured User Defined Types (UDTs).
Refers to the Teradata Database associated with the TDP whose TDP identifier is addressed by
the QEPTIDP field and has length specified by the QEPTLEN field.
Returns the degree of support for referencing the constituent attributes of SQL Structured
User Defined Types (UDTs).
This item is also included in the Aggregate-support-list query item.
Response DBQERTOU (DbqerTOU for C)
Item
Code
Mnemonic
Field
Value
52
QEPITOU
QERTOU
('usage' for C and
PL/I)
A two-byte unsigned integer containing one of
the following values:
0 with mnemonic QERTOUN
(QER_XformsOffUsageNone for C, NOTSUPPORTED for COBOL,
QER_XFORMS_OFF_NONE for PL/I) if no
UDTs may be transformed.
1 with mnemonic QERTOUS
(QER_XformsOffUsageStruct for C,
STRUCTURED for COBOL,
QER_XFORMS_OFF_STRUCT for PL/I) if
Structured UDTs may be transformed.
2 with mnemonic QERTOUP
(QER_XformsOffUsagePeriod for C, PERIOD for
COBOL, QER_XFORMS_OFF_Period for PL/I)
if Period data types may be transformed.
Transforms-request-support
There is no known use for the Trusted-request-support query.
Refers to the Teradata Database associated with the TDP whose TDP identifier is addressed by
the QEPTIDP field and has length specified by the QEPTLEN field.
Returns whether the DBCAREA Trusted-request option will be honored or ignored.
336
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 8: CLIv2 Query Routine
DBCHQE
Response DBQERTRS (DbqerTRS for C)
Item
Code
Mnemonic
Field
Value
53
QEPITRS
QERTRS
('usage' for C and
PL/I)
One of the following EBCDIC characters:
'N' with mnemonic QERTRSN
(QER_NotSupported for C, NOT-SUPPORTED
for COBOL, QER_NOT_SUPPORTED for PL/I)
'Y' with mnemonic QERTRSY
(QER_Supported for C, SUPPORTED for
COBOL, QER_SUPPORTED for PL/I)
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
337
Chapter 8: CLIv2 Query Routine
DBCHQE
338
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
CHAPTER 9
Response Sequences
This chapter describes:
•
Buffers
•
Typical Teradata SQL Response Sequences
•
Typical Teradata Response Sequences
•
Parcels in Normal Sequences
•
Parcels That Indicate Problems
Buffers
The following buffers hold parcels being sent to and from the Teradata Database.
Request Buffer
Information to be sent to the Teradata Database is placed by CLIv2 in a request buffer. CLIv2
allocates a single request buffer per session. The allocation takes place when the session is first
established. DBCHCL automatically:
•
Expands the buffer if it is too small to hold the request being prepared.
•
Shrinks the buffer if Request Buffer Length is less than Current Request Buffer Length.
DBCHCL uses field values that the application has placed in the DBCAREA to determine
which parcels to send to the Teradata Database and what to put in them. The application does
not see the request buffer.
How to Calculate Maximum Length
The maximum length (in bytes) needed for the request buffer can be calculated as follows:
maximum Request Buffer Length =
(14 if Request Processing Option = ‘P‘) +
(4 + the maximum length of a request string) +
(4 + the maximum length of using data,
including indicator bytes if User Presence Bits
is set to ‘Y‘) +
(length of parcels in any {DBCAIRX extension} +
(6 for overhead)
The second and fifth lines are always included in the calculation. The third line is included
only if data is being sent to the Teradata Database. The first line is included only if Request
Processing Option = P.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
339
Chapter 9: Response Sequences
Buffers
Response Buffer
Information received from the Teradata Database is placed in a buffer called the response
buffer. If Two Response Buffers is set to ‘Y‘ in the DBCAREA, CLIv2 uses double buffering,
and each buffer is the size specified in the DBCAREA. CLIv2 allocates the buffers when
DBCHCL is called for any of the following functions:
•
Connect
•
RunStartUp
•
Initiate with Protocol-Function
•
Command
•
Initiate Request function
If Save
Response Buffer
is set to...
Then CLIv2...
N
deallocates the buffers when DBCHCL is called for the End Request function.
Y
saves one response buffer when DBCHCL is called for the End Request function.
If the saved buffer is too small for the next request, the saved buffer is deleted
and a new buffer of the required size is allocated.
Parcels received from the Teradata Database are stored in the response buffers in the
following ways.
If the value for Locate Mode is...
Then DBCHC makes the response parcels available...
Y (Locate Mode)
to the application in the response buffers
N (Mode Mode) and Parcel Mode
is Y
in the user-specified move area
CLIv2 automatically replenishes the response buffers. That is,
the application may call DBCHCL for the Fetch function
repeatedly.
The response buffers may or may not be large enough to hold all the parcels in the response,
but the application can draw on them as if they are.
Response Buffers and Rewind
If the application calls DBCHCL for the Rewind function, the pointer that moves back to the
first parcel is a pointer in the response stored on a spool file in the Teradata Database, not a
pointer in the response stored in the response buffers. Therefore, if rewinding may take place,
it is important to operate with Keep Response set to ‘Y‘, even if the whole response actually
can fit in the response buffer or buffers.
The response buffer must be at least long enough to hold an Error parcel or Failure parcel, so
that the application can detect a problem if it arises. If the response buffer is not long enough
for the longest parcel, CLIv2 expands the buffer to the required size (if less than the maximum
340
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 9: Response Sequences
Buffers
size) at the time it encounters the longest parcel. If the server requires a response buffer larger
than 32767 bytes but Maximum-parcel is not set to H, then an Error parcel with error code
3115 will be returned.
An Error parcel with error code 3115, 3116, or 3177 may also be returned if that parcel
contains an invalid information field (zero, greater than 32767 when Maximum-parcel is set
to O, or not greater than the existing buffer size).
Response Buffer Length and Performance
The growth operation costs CPU time. If an application is being optimized for performance
and Current Response Buffer Length is higher than Response Buffer Length, consider
increasing Response Buffer Length. If all the parcels in the response do not fit in one response
buffer, the Teradata Database first sends one buffer full of the response and later, as directed
by CLIv2, sends the remaining response one buffer full at a time.
A buffer full of parcels refers to the number of whole parcels that can fit in the buffer.
Parcels do not span buffers. As a rule of thumb, the larger the response buffer, the more
efficient the transmission of the response from the Teradata Database.
Active Buffers Per Request
There are times when CLIv2‘s sending in to the Teradata Database for the next buffer full of a
response conflicts with CLIv2‘s sending in a new request to the Teradata Database. The rule in
effect is that a session may have the Teradata Database active on its behalf for only one request
at a time. This applies to the requests the application knows about as well as to the restocking
requests done “behind the scenes.” If CLIv2 is restocking response buffers, CLIv2 returns busy
from a call to DBCHCL for the Fetch function if Wait For Response is N. This phenomenon is
a possibility when a new request has been refused.
Move Area
The application can allocate a move area. It is similar to the response buffer but only needs to
contain room for one parcel at a time. If the application has allocated a move area, then, when
the application sends in a request, it may specify in the DBCAREA that the move area is to be
used. In that case, each time DBCHCL is called for the Fetch function, DBCHCL moves the
next parcel, which is the one the application is about to use, into the move area instead of
making the parcel available in the response buffer.
In some application languages, such as COBOL, which do not support pointers, having the
next parcel separate is critical and easily worth the small use of space for the move area and
the small loss of time for DBCHCL to do the copy.
In other application languages, such as C, PL/I, and IBM Assembler, reading the parcel
directly from the response buffer is no problem, but using a move area may have an advantage
such as providing word alignment for the start of the move area. Mode Move is primarily for
use in languages that do not support pointer operations.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
341
Chapter 9: Response Sequences
Typical Teradata SQL Response Sequences
Typical Teradata SQL Response Sequences
Teradata Database generates one or more parcels in response to a request it receives. It then
sends the Teradata SQL response in portions containing whole parcels. The number of parcels
in the portion is the maximum number that can fit in the buffer for that request.
Response parcels are screened by CLIv2 before the application receives them. If a problem
develops and CLIv2 is able to resolve it, the application may not see an error returned by the
Teradata Database. For example, if CLIv2 screens an Error parcel which indicates that the
response buffer is too small, CLIv2 will automatically expand the buffer and request that
portion of the buffer again. The application will not know that the error existed and that it
was resolved by CLIv2.
The application can process the response parcels by calling DBCHCL repeatedly with the fetch
function. As each parcel is encountered, the application must check whether it is an error or
failure parcel, even when the return code from the fetch is zero. A zero return code only
indicates that CLIv2 and TDP have encountered no problems. To learn whether the Teradata
Database has detected problems, the parcel flavor must be checked.
Typical Teradata Response Sequences
The following sections contain the Teradata SQL response sequences for typical Teradata SQL
statements. Examples are provided throughout this chapter.
To discover the Teradata SQL response sequence for a Teradata SQL statement that is not
included here, do the following:
1
Submit the Teradata SQL statement.
2
Call DBCHCL with the fetch function, repeatedly, to see each parcel.
3
Stop when the EndRequest parcel is encountered.
Submitting Requests In Field Mode
If the Teradata SQL statement was submitted in Field Mode (Response Mode = F), the
response sequence for a successful statement will be as follows:
Table 42: Response Parcel Sequence in Field Mode
If the Teradata SQL
statement is...
Then the response parcels are as follows...
non-data returning
OK parcel (flavor 17) or ResultSummary (flavor 171), the activity count will
reflect the number of rows affected if an insert, update or delete statement;
the activity count is zero for all other non-data returning statements.
EndStatement parcel (flavor 11)
EndRequest parcel (flavor 12)
342
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 9: Response Sequences
Typical Teradata Response Sequences
Table 42: Response Parcel Sequence in Field Mode (continued)
If the Teradata SQL
statement is...
Then the response parcels are as follows...
data returning, or a
Select statement with
no WITH clause
OK parcel (flavor 17) or ResultSummary (flavor 171), the activity count will
reflect the number of rows returned.
TitleStart parcel (flavor 20)
The following parcel is repeated once for each column returned:
Field parcel (flavor 18)
TitleEnd parcel (flavor 21)
FormatStart parcel (flavor 22)
The following parcel is repeated once for each column returned:
Field parcel (flavor 18)
FormatEnd parcel (flavor 23)
SizeStart parcel (flavor 24)
The following parcel is repeated once for each column returned:
Size parcel (flavor 26)
SizeEnd parcel (flavor 25)
The following parcels are repeated activity-count number of times:
RecStart parcel (flavor 27)
The following parcel is repeated once for each column returned:
Field parcel (flavor 18)
RecEnd parcel (flavor 28)
EndStatement parcel (flavor 11)
EndRequest parcel (flavor 12)
a Select statement
having one or more
WITH clauses
OK parcel (flavor 17) or ResultSummary (flavor 171), the activity count will
reflect the number of rows returned.
TitleStart parcel (flavor 20)
The following parcel is repeated once for each column returned:
Field parcel (flavor 18)
TitleEnd parcel (flavor 21)
FormatStart parcel (flavor 22)
The following parcel is repeated once for each column returned:
Field parcel (flavor 18)
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
343
Chapter 9: Response Sequences
Typical Teradata Response Sequences
Table 42: Response Parcel Sequence in Field Mode (continued)
If the Teradata SQL
statement is...
Then the response parcels are as follows...
FormatEnd parcel (flavor 23)
SizeStart parcel (flavor 24)
The following parcel is repeated once for each column returned:
Size parcel (flavor 26)
SizeEnd parcel (flavor 25)
The following parcels repeat for each WITH clause:
With parcel (flavor 33)
PosStart parcel (flavor 46)
The following parcel is repeated once for each column in WITH clause:
Position parcel (flavor 34)
PosEnd parcel (flavor 47)
TitleStart parcel (flavor 20)
The following parcel is repeated once for each column in WITH clause:
Field parcel (flavor 18)
TitleEnd parcel (flavor 21)
FormatStart parcel (flavor 22)
The following parcel is repeated once for each column in WITH clause:
Field parcel (flavor 18)
FormatEnd parcel (flavor 23)
SizeStart parcel (flavor 24)
The following parcel is repeated once for each column in WITH clause:
Size parcel (flavor 26)
SizeEnd parcel (flavor 25)
EndWith parcel (flavor 35)
The following parcels are repeated activity-count number of times
RecStart parcel (flavor 27)
The following parcel is repeated once for each column returned:
Field parcel (flavor 18)
RecEnd parcel (flavor 28)
344
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 9: Response Sequences
Typical Teradata Response Sequences
Table 42: Response Parcel Sequence in Field Mode (continued)
If the Teradata SQL
statement is...
Then the response parcels are as follows...
With parcel (flavor 33)
RecStart parcel (flavor 27)
The following parcel is repeated once for each column in WITH clause:
Field parcel (flavor 18)
RecEnd parcel (flavor 28)
EndWith parcel (flavor 35)
EndStatement parcel (flavor 11)
EndRequest parcel (flavor 12)
an ECHO request
OK parcel (flavor 17) or ResultSummary (flavor 171)
RecStart parcel (flavor 27)
Field parcel (flavor 18)
RecEnd parcel (flavor 28)
EndStatement parcel (flavor 11)
EndRequest parcel (flavor 12)
Submitting Requests In Record Mode
If the Teradata SQL statement is submitted in Record Mode (Response Mode = R), the
response parcels for a successful statement will be as follows:
Note: These response parcels are not necessarily in the order in which they are returned. See
“Parcel Sequences” on page 349 for the correct return sequence.
Table 43: Response parcel sequence in Record Mode
If the Teradata SQL
statement is...
Then the response parcels are as follows...
non-data returning
Success parcel (flavor 8) or ResultSummary (flavor 171), the activity code
will reflect the number of rows affected if an insert, update or delete
statement; the activity count is zero for all other non-data returning
statements.
EndStatement parcel (flavor 11)
EndRequest parcel (flavor 12)
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
345
Chapter 9: Response Sequences
Typical Teradata Response Sequences
Table 43: Response parcel sequence in Record Mode (continued)
If the Teradata SQL
statement is...
Then the response parcels are as follows...
data returning, or a
Select statement with
no WITH clause
Success parcel (flavor 8) or ResultSummary (flavor 171), the activity
count will reflect the number of rows returned.
The following parcel is repeated activity-count number of times:
Record parcel (flavor 10)
EndStatement parcel (flavor 11)
EndRequest parcel (flavor 12)
a Select statement
having one or more
WITH clauses
Success parcel (flavor 8) or ResultSummary (flavor 171), the activity count
will reflect the number of rows returned, including summary rows resulting
from WITH clauses.
The following parcel is repeated activity-count number of times:
Record parcel (flavor 10)
The following parcels are repeated for each summary row:
With parcel (flavor 33)
Record parcel (flavor 10)
EndWith parcel (flavor 35)
EndStatement parcel (flavor 11)
EndRequest parcel (flavor 12)
an ECHO request
Success parcel (flavor 8) or ResultSummary (flavor 171)
Record parcel (flavor 10)
EndStatement parcel (flavor 11)
EndRequest parcel (flavor 12)
Submiting Requests—MultipartIndicator Mode
If the Teradata SQL statement is submitted in MultipartIndicator mode (Response mode =
M), the response parcels for a successful statement will be as follows:
Table 44: Response Sequence in MultipartIndicator Mode
If the Teradata SQL
statement is...
non-data returning
346
Then the response parcels are as follows...
Success parcel (flavor 8) or ResultSummary (flavor 171), the activity count
will reflect the number of rows affected if an insert, update, or delete
statement; the activity count is zero for all other non-data returning
statements.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 9: Response Sequences
Typical Teradata Response Sequences
Table 44: Response Sequence in MultipartIndicator Mode (continued)
If the Teradata SQL
statement is...
Then the response parcels are as follows...
EndStatement parcel (flavor 11)
EndRequest parcel (flavor 12)
data returning, or a
Select statement with
no WITH clause
Success parcel (flavor 8) or ResultSummary (flavor 171), the activity count
will reflect the number of rows returned.
DataInfoX parcel (flavor 146) or StatementInformation (flavor 169) and
StatementInformationEnd (flavor 170)
The following parcel is repeated activity-count number of times:
One or more MultipartRecord parcels (flavor 144)
EndMultipartRecord parcel (flavor 145)
EndStatement parcel (flavor 11)
EndRequest parcel (flavor 12)
a Select statement
having one or more
WITH clauses
Success parcel (flavor 8) or ResultSummary (flavor 171), the activity count
will reflect the number of rows returned, including summary rows resulting
from WITH clauses
DataInfoX parcel (flavor 146) or StatementInformation (flavor 169) and
StatementInformationEnd (flavor 170)
With parcel (flavor 33)
PosStart parcel (flavor 46)
Position parcel (flavor 34)
PosEnd parcel (flavor 47)
EndWith parcel (flavor 35)
DataInfoX parcel (flavor 146) or StatementInformation (flavor 169) and
StatementInformationEnd (flavor 170)
The following parcels are repeated activity-count number of times:
One or more MultipartRecord parcels (flavor 144)
EndMultipartRecord parcel (flavor 145)
The following parcels are repeated for each summary row:
With parcel (flavor 33)
One or more MultipartRecord parcels (flavor 144)
EndMultipartRecord parcel (flavor 145)
EndWith parcel (flavor 35)
EndStatement parcel (flavor 11)
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
347
Chapter 9: Response Sequences
Typical Teradata Response Sequences
Table 44: Response Sequence in MultipartIndicator Mode (continued)
If the Teradata SQL
statement is...
Then the response parcels are as follows...
EndRequest parcel (flavor 12)
an ECHO request
Success parcel (flavor 8) or ResultSummary (flavor 171).
One or more MultipartRecord parcels (flavor 144)
EndMultipartRecord parcel (flavor 145)
EndStatement parcel (flavor 11)
EndRequest parcel (flavor 12)
Submitting Requests In Indicator Mode
If the Teradata SQL statement was submitted in Indicator Mode (Response Mode = I ), the
response sequence for a successful statement will be as follows:
Table 45: Response Parcel Sequence Indicator Mode
If the Teradata SQL
statement is...
Then the response parcels are as follows...
non-data returning
Success parcel (flavor 8) or ResultSummary (flavor 171), the activity code
will reflect the number of rows affected if an insert, update or delete
statement; the activity count is zero for all other non-data returning
statements.
EndStatement parcel (flavor 11)
EndRequest parcel (flavor 12)
data returning, or a
Success parcel (flavor 8) or ResultSummary (flavor 171), the activity count
Select statement with will reflect the number of rows returned.
no WITH clause
DataInfo parcel (flavor 71) or StatementInformation (flavor 169) and
StatementInformationEnd (flavor 170)
The following parcel is repeated activity-count number of times:
Record parcel (flavor 10)
EndStatement parcel (flavor 11)
EndRequest parcel (flavor 12)
a Select statement
having one or more
WITH clauses
Success parcel (flavor 8) or ResultSummary (flavor 171), the activity count
will reflect the number of rows returned, including summary rows resulting
from WITH clauses.
DataInfo parcel (flavor 71) or StatementInformation (flavor 169) and
StatementInformationEnd (flavor 170)
With parcel (flavor 33)
348
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 9: Response Sequences
Typical Teradata Response Sequences
Table 45: Response Parcel Sequence Indicator Mode (continued)
If the Teradata SQL
statement is...
Then the response parcels are as follows...
PosStart parcel (flavor 46)
Position parcel (flavor 34)
PosEnd parcel (flavor 47)
EndWith parcel (flavor 35)
DataInfo parcel (flavor 71) or StatementInformation (flavor 169) and
StatementInformationEnd (flavor 170)
The following parcel is repeated activity-count number of times:
Record parcel (flavor 10)
The following parcels are repeated for each summary row:
With parcel (flavor 33)
Record parcel (flavor 10)
EndWith parcel (flavor 35)
EndStatement parcel (flavor 11)
EndRequest parcel (flavor 12)
an ECHO request
Success parcel (flavor 8) or ResultSummary (flavor 171)
Record parcel (flavor 10)
EndStatement parcel (flavor 11)
EndRequest parcel (flavor 12)
Parcel Sequences
CLIv2 constructs the correct parcel sequences to the Teradata Database software based on the
information supplied in the DBCAREA. The application should only be concerned with the
response parcels returned from the Teradata Database via CLIv2.
The following table explains parcel return sequences for various combinations of connect
types and return code fields.
Connect
Type.
Return Code
field is...
R
33
And...
Then...
code is 33 at the time the Fetch
function is issued for the
connect request
the response parcels do not have to be
scanned.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
349
Chapter 9: Response Sequences
Typical Teradata Response Sequences
Connect
Type.
Return Code
field is...
R
0
And...
Then...
the parcel returned is one of the
following:
Failure parcel (flavor 9)
Error parcel (flavor 49)
C
non-zero
C
0
the response parcels do not have to be
scanned.
there is a problem establishing
the connection
the parcel returned will be one of the
following:
Failure parcel (flavor 9)
Error parcel (flavor 49)
C
0
the connection is successfully
established
the parcels returned will be both of
the following:
Success parcel (flavor 8) or
ResultSummary (flavor 171)
EndRequest parcel (flavor 12)
Issuing Requests—Field Mode
Field Mode requests may return the following parcels:
350
Name
Flavor
Failure
9
Error
49
OK
17
ResultSummary
171
Field
18
With
33
EndWith
35
FormatStart
22
FormatEnd
23
NullField
19
PosStart
46
Position
34
PosEnd
47
RecStart
28
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 9: Response Sequences
Typical Teradata Response Sequences
Name
Flavor
RecEnd
28
SizeStart
24
Size
26
SizeEnd
25
TitleStart
20
TitleEnd
21
EndStatement
11
EndRequest
12
The following examples assume successful completion of the request when using Original
Statement-status. If using Enhanced Statement-status, OK parcels will be replaced by
ResultSummary parcels. See Chapter 15: “Parcels for Basic Applications” or Chapter 16:
“Parcels for Advanced Applications” for detailed descriptions of parcels.
UPDATE TABLE1 SET FIELD1 = 999999;
Parcel
Flavor
Body
OK
17
(1, 0, 23, 3, 0, 0)
EndStatement
11
(1)
EndRequest
12
SELECT FIELD1 FROM TABLE1;
Parcel
Flavor
Body
OK
17
(1, 1, 23, 1, 0, 0)
TitleStart
20
Field
18
TitleEnd
21
FormatStart
22
Field
18
FormatEnd
23
SizeStart
24
Size
26
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
(title)
(format)
(size)
351
Chapter 9: Response Sequences
Typical Teradata Response Sequences
SELECT FIELD1 FROM TABLE1;
Parcel
Flavor
SizeEnd
25
RecStart (1)
27
Field
18
RecEnd (1)
28
.
.
.
.
.
.
RecStart (23)
27
Field
18
RecEnd (23)
28
EndStatement
11
EndRequest
12
Body
(data)
(data)
(1)
SELECT FIELD1 FROM TABLE1 WITH SUM (FIELD1)
352
Parcel
Flavor
Body
OK
17
(1, 1, 24, 1, 0, 0)
TitleStart
20
Field
18
TitleEnd
21
FormatStart
22
Field
18
FormatEnd
23
SizeStart
24
Size
26
SizeEnd
25
With
33
PosStart
46
Position
34
(title)
(format)
(size)
(1)
(1)
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 9: Response Sequences
Typical Teradata Response Sequences
SELECT FIELD1 FROM TABLE1 WITH SUM (FIELD1)
Parcel
Flavor
PosEnd
47
TitleStart
20
Field
18
TitleEnd
21
FormatStart
22
Field
18
FormatEnd
23
SizeStart
24
Size
26
SizeEnd
25
EndWith
35
RecStart (1)
27
Field
18
RecEnd (1)
28
.
.
.
.
.
.
Body
(title)
(format)
(size)
(1)
(data)
RecStart (23)
27
Field
18
RecEnd (23)
28
With
33
(1)
Field
18
(data)
EndWith
35
(1)
EndStatement
11
(1)
EndRequest
12
(data)
SELECT FIELD1 FROM TABLE1; SELECT FIELD2 FROM TABLE2;
Parcel
Flavor
Body
OK
17
(1, 1, 23, 1, 0, 0)
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
353
Chapter 9: Response Sequences
Typical Teradata Response Sequences
SELECT FIELD1 FROM TABLE1; SELECT FIELD2 FROM TABLE2;
354
Parcel
Flavor
TitleStart
20
Field
18
TitleEnd
21
FormatStart
22
Field
18
FormatEnd
23
SizeStart
24
Size
26
SizeEnd
25
RecStart (1)
27
Field
18
RecEnd (1)
28
.
.
.
.
Body
(title)
(format)
(size)
(data)
RecStart (23)
27
Field
18
RecEnd
28
EndStatement
11
(1)
OK
17
(2, 1, 10, 1, 0, 0)
TitleStart
20
Field
18
TitleEnd
21
FormatStart
22
Field
18
FormatEnd
23
SizeStart
24
Size
26
SizeEnd
25
RecStart (1)
27
(data)
(title)
(format)
(size)
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 9: Response Sequences
Typical Teradata Response Sequences
SELECT FIELD1 FROM TABLE1; SELECT FIELD2 FROM TABLE2;
Parcel
Flavor
Body
Field
18
(data)
RecEnd (1)
28
.
.
.
.
.
.
RecStart (10)
27
Field
18
RecEnd (10)
28
EndStatement
11
EndRequest
12
(data)
(2)
ECHO ‘SELECT FIELD1 FROM TABLE1‘;
Parcel
Flavor
Body
OK
17
(1, 1, 0, 33, 0, 0)
RecStart
27
Field
18
RecEnd
28
EndStatement
11
EndRequest
12
(data)
(1)
Issuing Requests—Record Mode
Record Mode requests may return the following parcels:
Name
Flavor
Failure
9
Error
49
Success
8
ResultSummary
171
Record
10
With
33
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
355
Chapter 9: Response Sequences
Typical Teradata Response Sequences
Name
Flavor
EndWith
35
EndStatement
11
EndRequest
12
The following examples assume successful completion of the request when using Original
Statement-status. If using Enhanced Statement-status, OK parcels will be replaced by
ResultSummary parcels. See Chapter 15: “Parcels for Basic Applications” or Chapter 16:
“Parcels for Advanced Applications” for detailed descriptions of parcels.
UPDATE TABLE1 SET FIELD1 = 999999;
Parcel
Flavor
Body
Success
8
(1, 23, 0, 0, 3, 0)
EndStatement
11
(1)
EndRequest
12
SELECT FIELD1 FROM TABLE1;
Parcel
Flavor
Body
Success
8
(1, 23, 0, 1, 1, 0)
Record (1)
10
(data)
.
.
.
.
.
.
.
.
.
Record (23)
10
(data)
EndStatement
11
(1)
EndRequest
12
SELECT FIELD1 FROM TABLE1 WITH SUM (FIELD1);
356
Parcel
Flavor
Body
Success
8
(1, 24, 0, 1, 1, 0)
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 9: Response Sequences
Typical Teradata Response Sequences
SELECT FIELD1 FROM TABLE1 WITH SUM (FIELD1);
Parcel
Flavor
Body
Record (1)
10
(data)
.
.
.
.
.
.
.
.
.
Record (23)
10
(data)
With
33
(1)
Record
10
(data)
EndWith
35
(1)
EndStatement
11
(1)
EndRequest
12
SELECT FIELD1 FROM TABLE1; SELECT FIELD2 FROM TABLE2;
Parcel
Flavor
Body
Success
8
(1, 23, 0, 1, 1, 0)
Record (1)
10
(data)
.
.
.
.
.
.
.
.
Record (23)
10
(data)
EndStatement
11
(1)
Success
8
(2, 10, 0, 1, 1, 0)
Record (1)
10
(data)
.
.
.
.
.
.
.
.
.
Record (10)
10
(data)
EndStatement
11
(2)
EndRequest
12
.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
357
Chapter 9: Response Sequences
Typical Teradata Response Sequences
ECHO ‘SELECT FIELD1 FROM TABLE1‘;
Parcel
Flavor
Body
Success
8
(1, 0, 0, 1, 33, 0)
Record
10
(echoed string)
EndStatement
11
(1)
EndRequest
12
Issuing Requests—MultipartIndicator Mode
MultipartIndicator Mode requests may return the following parcels:
Name
Flavor
Failure
9
Error
49
Success
8
ResultSummary
171
DataInfoX
146
MultipartRecord
144
StatementInformation
169
StatementInformationEnd
170
EndMultipartRecord
145
With
33
EndWith
35
PosStart
46
Position
34
PosEnd
47
EndStatement
11
EndRequest
12
The following examples assume successful completion of the request when using Original
Statement-status. If using Enhanced Statement-status, OK parcels will be replaced by
ResultSummary parcels. See Chapter 15: “Parcels for Basic Applications” or Chapter 16:
“Parcels for Advanced Applications” for detailed descriptions of parcels.
358
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 9: Response Sequences
Typical Teradata Response Sequences
The following examples assume that the Return-statement-info 'Y' option was not specified; if
specified, DataInfoX parcels will be replaced by StatementInformation and
StatementInformationEnd parcels.
UPDATE TABLE1 SET FIELD1 = 999999
Parcel
Flavor
Body
Success
8
(1, 23, 0, 0, 3, 0)
EndStatement
11
(1)
EndRequest
12
UPDATE TABLE1 SET FIELD1 = 999999
Parcel
Flavor
Body
Success
8
(1, 23, 0, 1, 1, 0)
DataInfoX
146
(1, 496, 4)
MultipartRecord(s) for row 1
144
(ind, data)
EndMultipartRecord
145
(ind, data)
MultipartRecord(s) for row 23
144
(ind, data)
EndMultipartRecord
145
(ind, data)
EndStatement
11
(1)
EndRequest
12
SELECT FIELD1 FROM TABLE1 WITH SUM (FIELD1);
Parcel
Flavor
Body
Success
8
(1, 24, 0, 1, 1, 0)
DataInfoX
146
(1, 496, 4)
With
33
(1)
PosStart
46
Position
34
PosEnd
47
DataInfoX
146
(1, 496, 4)
EndWith
35
(1)
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
(1)
359
Chapter 9: Response Sequences
Typical Teradata Response Sequences
SELECT FIELD1 FROM TABLE1 WITH SUM (FIELD1);
Parcel
Flavor
Body
MultipartRecord(s) for row 1
144
(ind, data)
EndMultipartRecord
145
MultipartRecord (s)for row 23
144
EndMultipartRecord
145
With
33
(1)
MultipartRecord(s)
144
(ind,data)
EndMultipartRecord
145
EndWith
35
(1)
EndStatement
11
(1)
EndRequest
12
(ind, data)
SELECT FIELD1 FROM TABLE1; SELECT FIELD2 FROM TABLE2;
360
Parcel
Flavor
Body
Success
8
(1, 23, 0, 1, 1, 0)
DataInfoX
146
(1, 496, 4)
MultipartRecord(s) for row 1
144
(ind, data)
EndMultipartRecord
145
MultipartRecord(s) for row 23
144
EndMultipartRecord
145
EndStatement
11
(1)
Success
8
(2, 10, 0, 1, 1, 0)
DataInfoX
71
(2, 496, 4)
MultipartRecord(s) for row 1
144
(ind, data)
EndMultipartRecord
145
MultipartRecord(s) for row 10
144
EndMultipartRecord
145
EndStatement
11
EndRequest
12
(ind, data)
(ind, data)
(2)
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 9: Response Sequences
Typical Teradata Response Sequences
ECHO ‘SELECT FIELD1 FROM TABLE1‘;
Parcel
Flavor
Body
Success
8
(1, 0, 0, 1, 33, 0)
MultipartRecord(s)
144
(ind, data)
EndMultipartRecord
145
EndStatement
11
EndRequest
12
(1)
Issuing Requests—Indicator Mode
Indicator Mode requests may return the following parcels:
Name
Flavor
Failure
9
Error
49
Success
8
ResultSummary
171
DataInfo
71
StatementInformation
169
StatementInformationEnd
170
Record
10
With
33
EndWith
35
PosStart
46
Position
34
PosEnd
47
EndStatement
11
EndRequest
12
The following examples assume successful completion of the request when using Original
Statement-status. If using Enhanced Statement-status, OK parcels will be replaced by
ResultSummary parcels. See Chapter 15: “Parcels for Basic Applications” or Chapter 16:
“Parcels for Advanced Applications” for detailed descriptions of parcels.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
361
Chapter 9: Response Sequences
Typical Teradata Response Sequences
The following examples assume that the Return-statement-info 'Y' option was not specified; if
specified, DataInfoX parcels will be replaced by StatementInformation and
StatementInformationEnd parcels.
UPDATE TABLE1 SET FIELD1 = 999999;
Parcel
Flavor
Body
Success
8
(1, 23, 0, 0, 3, 0)
EndStatement
11
(1)
EndRequest
12
SELECT FIELD1 FROM TABLE1;
Parcel
Flavor
Body
Success
8
(1, 23, 0, 1, 1, 0)
DataInfo
71
(1, 496, 4)
Record (1)
10
(ind, data)
.
.
.
.
.
.
.
.
.
Record (23)
10
(ind, data)
EndStatement
11
(1)
EndRequest
12
(continued)
SELECT FIELD1 FROM TABLE1 WITH SUM (FIELD1);
362
Parcel
Flavor
Body
Success
8
(1, 24, 0, 1, 1, 0)
DataInfo
71
(1, 496, 4)
With
33
(1)
PosStart
46
Position
34
PosEnd
47
DataInfo
71
(1)
(1, 496, 4)
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 9: Response Sequences
Typical Teradata Response Sequences
SELECT FIELD1 FROM TABLE1 WITH SUM (FIELD1);
Parcel
Flavor
Body
EndWith
35
(1)
Record (1)
10
(ind,data)
.
.
.
.
.
.
.
.
.
Record (23)
10
(ind,data)
With
33
(1)
Record
10
(ind,data)
EndWith
35
(1)
EndStatement
11
(1)
EndRequest
12
SELECT FIELD1 FROM TABLE1; SELECT FIELD2 FROM TABLE2;
Parcel
Flavor
Body
Success
8
(1, 23, 0, 1, 1, 0)
DataInfo
71
(1, 496, 4)
Record (1)
10
(ind.data)
.
.
.
.
.
.
.
.
.
Record (23)
10
(ind,data)
EndStatement
11
(1)
Success
8
(2, 10, 0, 1, 1, 0)
DataInfo
71
(2, 496, 4)
Record (1)
10
(ind,data)
.
.
.
.
.
.
.
.
.
Record (10)
10
(data)
EndStatement
11
(2)
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
363
Chapter 9: Response Sequences
Parcels in Normal Sequences
EndRequest
12
ECHO ‘SELECT FIELD1 FROM TABLE1‘;
Parcel
Flavor
Body
Success
8
(1, 0, 0, 1, 33, 0)
Record
10
(echoed string)
EndStatement
11
(1)
EndRequest
12
Parcels in Normal Sequences
The sequence of the entire Teradata SQL response (spool file), as held on the Teradata
Database, contains a set of parcels for each Teradata SQL statement contained in it, and, last,
an EndRequest parcel:
set of parcels for statement 1
set of parcels for statement 2
.
.
.
EndRequest Parcel
Parcels That Indicate Problems
Problems encountered during execution of a Teradata SQL request are signalled to the
application via the Error and Failure parcels (flavors 49 and 9, respectively). Whenever the
application receives a response parcel, there is a possibility that it will be an Error or Failure
parcel, even if previous parcels were normal.
Field Layouts
Error parcels and Failure parcels have the same field layout. The distinction lies in the action
taken by the Teradata Database when the problem occurs.
364
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 9: Response Sequences
Parcels That Indicate Problems
Error Parcels
An Error parcel indicates that a rollback did not take place for the problem. The transaction
(either implicit or explicit) in which the request was embedded is still active. However, the
request did not perform any action due to the error reported in the parcel.
Failure Parcels
A Failure parcel indicates that the active transaction at the time of the error has been rolled
back. In Teradata transaction mode, this includes any requests within the scope of the
transaction that had been completed successfully prior to the error. If a failure occurs during
the processing of a multi-statement request, all statements within the request are rolled back
as well as the transaction.
In ANSI transaction mode, a Failure response parcel rolls back only the statement causing the
error unless that error threatens the integrity of the database, in which case the entire
transaction is rolled back. Statements which have not been executed will be discarded.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
365
Chapter 9: Response Sequences
Parcels That Indicate Problems
366
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
CHAPTER 10
Error and Failure Codes
This chapter provides information pertaining to error and failure codes.
Error and Failure Codes
The application should save the current Teradata SQL request and any Teradata SQL request
for which the response is being held on the Teradata Database, in case they must be
resubmitted. If a transaction spans more than one request, all the requests should be saved, in
case the transaction must be resubmitted.
The guidelines for responding to the error and failure parcel codes are listed in Table 46:
Table 46: Error and Failure Codes
Code
Message
Action
Failure Code 2631
transaction aborted due to deadlock.
Resubmit the transaction
Failure Code 2639
sorry, too many simultaneous transactions.
Resubmit the request
Failure Code 2641
databasename.tablename was restructured.
Resubmit the transaction
Error Code 2825
no record of the last request was found after the
Teradata Database restart.
Resubmit the Teradata SQL request
Error Code 2826
request completed but all output was lost due to
the Teradata Database restart.
Whether or not the original Teradata SQL
request should be resubmitted to obtain the
response depends on the nature of the request.
For instance, if the request was to display certain
data, the original request can safely be
resubmitted. If the request was to multiply the
values in a column by 10 and the request is
resubmitted, the column will in effect have been
multiplied by 100, so it is not safe to resubmit the
original request.
Failure Code 2827
request was aborted by user or due to statement
error.
The circumstances may not warrant resubmitting
anything at all; however, if resubmission is
appropriate, resubmit the transaction
Failure Code 2828
request was rolled back during system recovery.
The transaction was lost due to a crash; resubmit
the transaction
Failure Code 2835
a unique index has been invalidated; resubmit
transaction.
Resubmit the transaction
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
367
Chapter 10: Error and Failure Codes
Error and Failure Codes
Table 46: Error and Failure Codes (continued)
Code
Message
Action
Failure Code 3111
the transaction has been timed out.
Resubmit the transaction
Error Code 3115
a response parcel greater than 32767 bytes but the Specify the Maximum Parcel option to allow
CLIv2 Maximum Parcel option to allow larger
larger parcels
parcels was not specified.
an invalid value was returned by the server for the Report the server problem to the Global Support
Error parcel information field, being either 0 or
Center
not greater than the existing buffer size.
Error Code 3116
an invalid value was returned by the server for the Report the server problem to the Global Support
Error parcel information field (being either zero Center
or greater than 32767) when Maximum-parcel
was specified as O.
Error Code 3117
Maximum-parcel was specified as 'O' but the
server requires 'H', or an invalid value was
returned by the server for the data in a
MinimumResponseBuffer entry in an
ErrorInformation parcel, or that parcel was
missing or malformed.
If Maximum-parcel was specified as 'H', report
the server problem to Technical Support.
Failure Code 3120
the request is aborted because of a Teradata
Database recovery.
Resubmit the transaction
Failure Code 3598
concurrent change conflict on data base - try
again.
Resubmit the transaction
Failure Code 3603
concurrent change conflict on table - try again.
Resubmit the transaction
Failure Code 3897
request aborted due to system crash. Resubmit.
Resubmit the transaction
Note: If any other code appears, stop the program and investigate the problem.
The official list of retryable codes is in “Retryable Errors,” located in Messages.
368
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
CHAPTER 11
Crash and Recovery
This chapter discusses the following topics:
•
TDP or Client System Crashes
•
Unusable CP
•
AP Reset Containment (APRC)
•
Teradata Database Crash and Recovery
•
What the Application Does
TDP or Client System Crashes
Teradata Database is unaware of a TDP crash. In-progress requests continue, and responses
are still available. When the TDP is restarted, it sends a cold client start, which causes Teradata
Database to log off all sessions and roll back any uncommitted work. If the 2PC protocol is
being used and there is a TDP crash, any in-doubt sessions will remain active and must be
resolved by the coordinator
Unusable CP
A Channel Processor (CP) is a communication path using the mainframe channel between
TDP and the Teradata Database. Since more than one CP is often installed, the failure of one
does not prevent communication with the Database, but it does have a dramatic impact on
requests that are using the failed CP. Unlike a Database restart in which all requests are
terminated, leaving the sessions in a known, usable state, the failure of a CP does not cleanup
current requests but since their state cannot be ascertained by TDP, TDP must logoff the
affected sessions. A return code of 544 indicates this condition. If the application is to recover
it must connect that session again, ascertain whether the requests successfully completed, and
continue processing as appropriate. However, the return code is presented immediately but it
may take an indeterminate amount of time for TDP to abort the original request and logoff
the original session, so any Database resources associated with that request and session may
not yet have been freed so may not yet be available.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
369
Chapter 11: Crash and Recovery
AP Reset Containment (APRC)
AP Reset Containment (APRC)
AP Reset Containment (APRC) is a user-transparent feature available on AP-based hardware
configurations running application programs and Teradata utilities. An AP Reset
Containment Configuration utility program, APRCConfig, provides the capability to enable
or disable APRC via the console.
Note: APRC is not applicable to SMP and MPP systems running the UNIX operating system.
How APRC Works
APRC restricts the number of Teradata Database restarts triggered by AP resets to only those
occurrences where a restart is essential. The estimated net result of enabling APRC is the
elimination of from 75 to 90 percent of restarts initiated by AP Resets. (Before APRC was
implemented, a restart was automatically triggered whenever an active AP in the current
configuration was reset.)
In the case of a resetting AP, there is a short delay while reconnects through other APs are
performed, but the longer delay usually associated with a restart is not necessary.
Crash Options
The crash options formerly in use will now appear on systems with the APRC feature under
new aliases. The aliases “Tell if Delay” and “Wait During Delay” have replaced “Tell About
Crash” and “Wait Across Crash”, respectively.
When APRC is enabled, applications using multiple sessions will receive a restart/AP Reset
indication on some, none, or all sessions, depending on the APs through which the sessions
are connected.
Teradata Database Crash and Recovery
When the Teradata Database detects an internal error that prevents it from continuing, it will
store diagnostic information and reinitialize itself. This event is called a crash (or reset). After
the Teradata Database has reinitialized, it rolls back any incomplete transactions or requests
in progress. This process is called a recovery.
When an AP on an AP/1012 or 3600 system is taken down or encounters an internal error that
prevents it from continuing, it will shut down. This event is called an AP reset. Any
incomplete transactions or requests in progress for sessions connected through that AP will be
rolled back. Sessions connected through any other APs are unaffected.
When Crash or AP Reset Occurs
When an application is running and either a Teradata Database crash or AP reset occurs, the
following steps occur:
•
370
The Teradata session ids are preserved and can continue to be used.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 11: Crash and Recovery
What the Application Does
•
If a restart is detected during logoff processing, CLIv2 reconnects the session and
resubmits the logoff request.
•
Affected Teradata transactions are aborted and all of the databases involved are rolled back
to the state they would have been in if the transactions had not begun.
•
Affected requests that have not completed are aborted, and any work they have performed
is rolled back.
•
Affected spool files on the Teradata Database, including those that the Teradata Database
has kept for completed requests, are discarded.
•
Applications already waiting for a response before the event occurs will be notified. (For
when and how, see “What the Application Does” on page 371.)
•
Applications submitting a request during the crash and recovery process may be notified.
See “What the Application Does” on page 371.
•
Applications later using the abort, fetch, rewind, or end request function for a Teradata
SQL request aborted by the event, or submitting a new request in a transaction that was in
progress when the event occurred and thus was aborted in the recovery process, will be
notified. See “What the Application Does” on page 371.
What the Application Does
During recovery from a Teradata Database crash or an AP Reset, communication with the
affected sessions is essentially lost. Since this loss will delay the use of such sessions, the
applications specify what actions to take when so delayed.
The DBCAREA has two crash-related processing options: Tell if Delay and Wait During
Delay. The following sections passages the three combinations that are allowed.
Note: The setting of Wait For Response has no effect on the processing shown below.
Tell and Wait
After calling DBCHINI, set the delay options as follows:
Delay Option
Setting
Wait During Delay
Y
Tell if Delay
Y
Given this combination of options, a delay can be handled as follows:
•
The application calls DBCHCL for some function
•
The Teradata Database delay occurs before or after receiving information from DBCHCL
•
CLIv2 returns control to the application, with return code of 286
•
The application can tell its user of the possible delay and can ask user whether to wait or
disconnect, assuming wait
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
371
Chapter 11: Crash and Recovery
What the Application Does
•
The application calls DBCHCL for the fetch function
•
Communication is re-established
•
The application obtains results of the Fetch, which may be as follows:
•
•
The Teradata Database does not know anything about a request with that request
number (Error parcel with error code 2825)
•
The Teradata Database aborted that request (Failure parcel with failure code 2828)
•
The request completed successfully but the response has been lost (Error parcel with
error code 2826)
The application takes action appropriate to the application
Note: Before submitting a request, save a copy of the request in case it must be
resubmitted. If a transaction spans several requests, save a copy of each request in the
transaction in case the transaction must be resubmitted.
Note: Tell and wait may be useful to terminal-oriented applications to distinguish
excessive response time.
Just Wait
After calling DBCHINI, set the delay options as follows.
Delay Option
Setting
Wait During Delay
Y
Tell If Delay
N
Given this combination, the steps if a delay occurs are as follows:
•
The application calls DBCHCL for some function
•
The delay occurs before or after receiving information from DBCHCL
•
The application is not notified of the delay and does not gain control
•
Communication is re-established
•
The application regains control from CLIv2 with a return code of zero
•
When the application calls DBCHCL for the Fetch function, it obtains the following:
•
•
The Teradata Database does not know anything about a request with that request
number (Error parcel with error code 2825)
•
The Teradata Database aborted that request (Failure parcel with failure code 2828)
•
The request completed successfully but the response has been lost (Error parcel with
error code 2826)
The application takes action appropriate to the application
Note: Before submitting a request, save a copy of the request in case it must be
resubmitted. (If a transaction spans several requests, save a copy of each request in the
transaction in case the transaction must be resubmitted.)
372
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 11: Crash and Recovery
What the Application Does
Note: If Wait For Response is set to N, CLIv2 logs the session off when it encounters the
delay. CLIv2 sends the logoff request to the Teradata Database when communication is reestablished.
Tell and Logoff
After calling DBCHINI, set the delay options as follows.
Delay Option
Setting
Wait During Delay
N
Tell If Delay
Y
Given this combination of options, a delay can be handled as follows:
•
The application calls DBCHCL for some function
•
The delay occurs before or after receiving information from DBCHCL
•
CLIv2 returns control to the application, with a return code of 286
•
The application takes action appropriate to the application
Before submitting a request, save a copy of the request in case it must be resubmitted. If a
transaction spans several requests, save a copy of each request in the transaction in case the
transaction must be resubmitted.
CLIv2 logs the session off when it encounters the delay. CLIv2 sends the logoff request to the
Teradata Database when communication is re-established.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
373
Chapter 11: Crash and Recovery
What the Application Does
374
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
CHAPTER 12
Character Set Codepoints
This chapter describes the various codepages that can be used when communicating with
Teradata Database. The character sets contained in this chapter include:
•
EBCDIC
•
EBCDIC037_0E
•
EBCDIC273_0E
•
EBCDIC277_0E
•
HANGULEBCDIC933_1II
•
KANJIEBCDIC5026_0I
•
KANJIEBCDIC5035_0I
•
KATAKANAEBCDIC
•
SCHEBCDIC935_2IJ
•
TCHEBCDIC937_3IB
Description of Codepage
Architecturally, each codepage consists of 256 possible values (codepoints) represented as
hexadecimal values in the range X'00' to X'FF'. Each character is identified by a codepoint that
is comprised of a row/column digit combination. The leftmost digit represents the row
number and the rightmost digit represents the column number. Codepoints range from '00'
(upper left corner) to 'FF' (lower right corner). For example, in the EBCDIC codpage, the
codepoint for the '!' character is 5A.
EBCDIC
The character set on the Teradata Database named EBCDIC is intended as a basic EBCDIC
character set consisting of 1-byte per character. Architecturally, the EBCDIC encoding
scheme consists of 256 possible values (codepoints) represented as hexadecimal values in the
range X'00' to X'FF'.
EBCDIC codepoint assignments are:
•
X'00' and X'3F' reserved for control characters
•
X'FF' reserved for the Eight Ones character
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
375
Chapter 12: Character Set Codepoints
EBCDIC
•
X'40' is the 'Space' character
•
X'41' through X'FE' are available to represent graphic characters
Table 47: Teradata EBCDIC Codepage
x0
x1
x2
x3
x4
x5
x6
x7
x8
x9
xA
xB
xC
xD
xE
xF
0x
NUL
SOH
STX
ETX
¤
HT
©
DEL
Ñ
Ò
Ó
VT
FF
CR
SO
SI
1x
DLE
DC1
DC2
DC3
Ô
Õ
BS
Ö
CAN
EM
Œ
Ø
IS4
IS3
IS2
IS1
2x
å
æ
Ù
ç
è
LF
ETB
ESC
é
Ð
ñ
ò
ó
ENQ
ACK
BEL
3x
ô
õ
SYN
ö
œ
É
ø
EOT
ù
â
ã
ä
DC4
NAK
à
4x
SP
¨
´
¸
×
÷
SSA
ESA
HTS
HTJ
PLD
.
<
(
+
RI
5x
&
PU1
PU2
STS
CCH
MW
SPA
EPA
SOS
UC1
!
$
*
)
;
^
6x
-
/
CSI
OSC
¢
£
ý
¥
¦
§
|
,
%
_
>
?
7x
Á
Â
Ã
Ä
Å
Æ
Ç
È
¡
`
:
#
@
'
=
"
8x
RSP
a
b
c
d
e
f
g
h
i
VTS
À
PLU
SHY
SS2
SS3
9x
DCS
j
k
l
m
n
o
p
q
r
SCI
ð
ST
½
PM
APC
Ax
š
~
s
t
u
v
w
x
y
z
ª
«
¬
[
®
¯
Bx
°
±
²
³
Ý
µ
¶
·
Š
¹
º
»
¼
]
¾
¿
Cx
{
A
B
C
D
E
F
G
H
I
Ê
Ë
Ì
Í
Î
Ï
Dx
}
J
K
L
M
N
O
P
Q
R
Ú
Û
Ü
Ÿ
þ
ß
Ex
\
á
S
T
U
V
W
X
Y
Z
ê
ë
ì
í
î
ï
Fx
0
1
2
3
4
5
6
7
8
9
ú
û
ü
ÿ
Þ
€
Control character codepoints
Reserved codepoints
The server will reject character data containing the reserved codepoint.
This is not a well-formed EBCDIC encoding because graphic characters appear in the range
reserved for control characters, non-EBCDIC control characters appear in the range reserved
for graphic characters, all common control characters are not present, and a graphic character
appears in the X'FF' codepoint reserved for the Eight Ones character.
No special processing is performed by the server for control characters. This includes the Shift
Out control character since all codepoints are single-byte. Similarly, the non-EBCDIC control
characters Single Shift Two and Single Shift Three imply nothing about subsequent
codepoints.
376
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 12: Character Set Codepoints
EBCDIC037_0E
EBCDIC037_0E
The character set on the Teradata Database named EBCDIC037_0E is intended as a basic
EBCDIC character set consisting of one byte per character. Architecturally, the EBCDIC
encoding scheme consists of 256 possible values (codepoints) represented as hexadecimal
values in the range X'00' to X'FF'.
Table 48: Teradata EBCDIC037_0E Codepage
x0
x1
x2
x3
x4
x5
x6
x7
x8
x9
xA
xB
xC
xD
xE
xF
0x
NUL
SOH
STX
ETX
ST
HT
SSA
DEL
EPA
RI
SS2
VT
FF
CR
SO
SI
1x
DLE
DC1
DC2
DC3
OSC
BS
ESA
CAN
EM
PU2
SS3
IS4
IS3
IS2
IS1
LF
ETB
ESC
HTS
HTJ
VTS
PLD
PLU
ENQ
ACK
BEL
2x
3x
DCS
PU1
SYN
STS
CCH
MW
SPA
EOT
SOS
UC1
SCI
CSI
DC4
NAK
PM
4x
SP
RSP
â
ä
à
á
ã
å
ç
ñ
¢
.
<
(
+
|
5x
&
é
ê
ë
è
í
î
ï
ì
ß
!
$
*
)
;
¬
6x
-
/
Â
Ä
À
Á
Ã
Å
Ç
Ñ
¦
,
%
_
>
?
7x
ø
É
Ê
Ë
È
Í
Î
Ï
Ì
`
:
#
@
'
=
"
8x
Ø
a
b
c
d
e
f
g
h
i
«
»
ð
ý
þ
±
9x
°
j
k
l
m
n
o
p
q
r
ª
º
æ
¸
Æ
¤
Ax
µ
~
s
t
u
v
w
x
y
z
¡
¿
Ð
Ý
Þ
®
Bx
^
£
¥
·
©
§
¶
¼
½
¾
[
]
¯
¨
´
¥
Cx
{
A
B
C
D
E
F
G
H
I
SHY
ô
ö
ò
ó
õ
Dx
}
J
K
L
M
N
O
P
Q
R
¹
û
ü
ù
ú
ÿ
Ex
\
÷
S
T
U
V
W
X
Y
Z
²
Ô
Ö
Ò
Ó
Õ
Fx
0
1
2
3
4
5
6
7
8
9
³
Û
Ü
Ù
Ú
APC
Control character codepoints
Reserved codepoints
The server will reject character data containing any reserved codepoint and will not identify
which invalid codepoint was present.
Graphic characters adhere to the standard definition for IBM code page 00037. The control
characters and Eight Ones character do not. This is true because a non-EBCDIC control
character appears in the range reserved for control characters, all common control characters
are not present, and a non-EBCDIC control character replaces the Eight Ones character.
No special processing is performed by the server for control characters. This includes the Shift
Out control character since all codepoints are single-byte. Similarly, the non-EBCDIC control
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
377
Chapter 12: Character Set Codepoints
EBCDIC273_0E
characters Single Shift Two and Single Shift Three imply nothing about subsequent
codepoints.
EBCDIC273_0E
The character set on the Teradata Database named EBCDIC273_0E is intended as a basic
EBCDIC character set consisting of one byte per character. Architecturally, the EBCDIC
encoding scheme consists of 256 possible values (codepoints) represented as hexadecimal
values in the range X'00' to X'FF'.
Table 49: Teradata EBCDIC273_0E Codepage
x0
x1
x2
x3
x4
x5
x6
x7
x8
x9
xA
xB
xC
xD
xE
xF
0x
NUL
SOH
STX
ETX
ST
HT
SSA
DEL
EPA
RI
SS2
VT
FF
CR
SO
SI
1x
DLE
DC1
DC2
DC3
OSC
BS
ESA
CAN
EM
PU2
SS3
IS4
IS3
IS2
IS1
LF
ETB
ESC
HTS
HTJ
VTS
PLD
PLU
ENQ
ACK
BEL
2x
3x
DCS
PU1
SYN
STS
CCH
MW
SPA
EOT
SOS
UC1
SCI
CSI
DC4
NAK
PM
4x
SP
RSP
â
{
à
á
ã
å
ç
ñ
Ä
.
<
(
+
!
5x
&
é
ê
ë
è
í
î
ï
ì
~
Ü
$
*
)
;
^
6x
-
/
Â
[
À
Á
Ã
Å
Ç
Ñ
ö
,
%
_
>
?
7x
ø
É
Ê
Ë
È
Í
Î
Ï
Ì
`
:
#
§
'
=
"
8x
Ø
a
b
c
d
e
f
g
h
i
«
»
ð
ý
þ
±
9x
°
j
k
l
m
n
o
p
q
r
ª
º
æ
¸
Æ
¤
Ax
µ
ß
s
t
u
v
w
x
y
z
¡
¿
Ð
Ý
Þ
®
Bx
¢
£
¥
·
©
@
¶
¼
½
¾
¬
|
¯
¨
´
¥
Cx
ä
A
B
C
D
E
F
G
H
I
SHY
ô
¦
ò
ó
õ
Dx
ü
J
K
L
M
N
O
P
Q
R
¹
û
}
ù
ú
ÿ
Ex
Ö
÷
S
T
U
V
W
X
Y
Z
²
Ô
\
Ò
Ó
Õ
Fx
0
1
2
3
4
5
6
7
8
9
³
Û
]
Ù
Ú
APC
Control character codepoints
Reserved codepoints
The server will reject character data containing any reserved codepoint and will not identify
which invalid codepoint was present.
While graphic characters adhere to the standard definition for IBM code page 0273, the
control characters and Eight Ones character do not because a non-EBCDIC control character
378
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 12: Character Set Codepoints
EBCDIC277_0E
appears in the range reserved for control characters, all common control characters are not
present, and a non-EBCDIC control character replaces the Eight Ones character.
No special processing is performed by the server for control characters. This includes the Shift
Out control character since all codepoints are single-byte. Similarly, the non-EBCDIC control
characters Single Shift Two and Single Shift Three imply nothing about subsequent
codepoints.
EBCDIC277_0E
The character set on the Teradata Database named EBCDIC277_0E is intended as a basic
EBCDIC character set consisting of one byte per character. Architecturally, the EBCDIC
encoding scheme consists of 256 possible values (codepoints) represented as hexadecimal
values in the range X'00' to X'FF'.
Table 50: Teradata EBCDIC277_0E Codepage
x0
x1
x2
x3
x4
x5
x6
x7
x8
x9
xA
xB
xC
xD
xE
xF
0x
NUL
SOH
STX
ETX
ST
HT
SSA
DEL
EPA
RI
SS2
VT
FF
CR
SO
SI
1x
DLE
DC1
DC2
DC3
OSC
BS
ESA
CAN
EM
PU2
SS3
IS4
IS3
IS2
IS1
LF
ETB
ESC
HTS
HTJ
VTS
PLD
PLU
ENQ
ACK
BEL
2x
3x
DCS
PU1
SYN
STS
CCH
MW
SPA
EOT
SOS
UC1
SCI
CSI
DC4
NAK
PM
4x
SP
RSP
â
ä
à
á
ã
}
ç
ñ
#
.
<
(
+
!
5x
&
é
ê
ë
è
í
î
ï
ì
ß
¤
Å
*
)
;
^
6x
-
/
Â
Ä
À
Á
Ã
$
Ç
Ñ
ø
,
%
_
>
?
7x
¦
É
Ê
Ë
È
Í
Î
Ï
Ì
`
:
Æ
Ø
'
=
"
8x
@
a
b
c
d
e
f
g
h
i
«
»
ð
ý
þ
±
9x
°
j
k
l
m
n
o
p
q
r
ª
º
{
¸
[
]
Ax
µ
ü
s
t
u
v
w
x
y
z
¡
¿
Ð
Ý
Þ
®
Bx
¢
£
¥
·
©
§
¶
¼
½
¾
¬
|
¯
¨
´
¥
Cx
æ
A
B
C
D
E
F
G
H
I
SHY
ô
ö
ò
ó
õ
Dx
å
J
K
L
M
N
O
P
Q
R
¹
û
~
ù
ú
ÿ
Ex
\
÷
S
T
U
V
W
X
Y
Z
²
Ô
Ö
Ò
Ó
Õ
Fx
0
1
2
3
4
5
6
7
8
9
³
Û
Ü
Ù
Ú
APC
Control character codepoints
Reserved codepoints
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
379
Chapter 12: Character Set Codepoints
HANGULEBCDIC933_1II
The server will reject character data containing any reserved codepoint and will not identify
which invalid codepoint was present.
While graphic characters adhere to the standard definition for IBM code page 0277, the
control characters and Eight Ones character do not because a non-EBCDIC control character
appears in the range reserved for control characters, all common control characters are not
present, and a non-EBCDIC control character replaces the Eight Ones character.
No special processing is performed by the server for control characters. This includes the Shift
Out control character since all codepoints are single-byte. Similarly, the non-EBCDIC control
characters Single Shift Two and Single Shift Three imply nothing about subsequent
codepoints.
HANGULEBCDIC933_1II
The character set on the Teradata Database named HANGULEBCDIC933_1II is intended as
an extended EBCDIC character set consisting of both one and two-bytes per character.
Architecturally, the EBCDIC encoding scheme consists of 256 possible values (codepoints)
represented as hexadecimal values in the range X'00' to X'FF'.
To support more than 256 codepoints, the EBCDIC encoding scheme is extended by defining
the Shift-out control character to switch from one byte per character to two bytes per
character until the Shift-in control character is encountered. The first byte of codepoints
between the Shift-out and Shift-in control characters is always between X'41' and X'FE'.
Currently, the second byte is also between X'41' and X'FE'. The X'4040' codepoint is defined
as the Double-byte Space character. No double-byte control characters exist. The double-byte
characters are not described.
Table 51: Single-byte Teradata HANGULEBCDIC933_1II Codepage
x0
x1
x2
x3
0x
NUL
SOH
STX
ETX
1x
DLE
DC1
DC2
DC3
x4
x5
HT
x7
LF
x8
x9
xA
DEL
BS
2x
3x
x6
ETB
SYN
CAN
xB
xC
xD
xE
xF
VT
FF
CR
SO
SI
IS4
IS3
IS2
IS1
ENQ
ACK
BEL
EM
ESC
EOT
DC4
NAK
SUB
4x
SP
¢
.
<
(
+
|
5x
&
!
$
*
)
;
^
6x
-
|
,
%
_
>
?
7x
[
:
#
@
'
=
"
8x
]
/
`
a
b
c
d
e
f
g
h
i
9x
j
k
l
m
n
o
p
q
r
Ax
~
s
t
u
v
w
x
y
z
380
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 12: Character Set Codepoints
HANGULEBCDIC933_1II
Table 51: Single-byte Teradata HANGULEBCDIC933_1II Codepage (continued)
Bx
^
]
Cx
{
A
B
C
D
E
F
G
H
I
Dx
}
J
K
L
M
N
O
P
Q
R
Ex
\
S
T
U
V
W
X
Y
Z
Fx
0
2
3
4
5
6
7
8
9
\
1
´
Control character codepoints
Reserved codepoints
Hangul codepoints. Refer to Table 52 on page 381 for details.
The server will reject character data containing any single or double byte reserved codepoint
and will not identify which invalid codepoint was present.
Table 52: Hangul Codepoint Assignments for HANGULEBCDIC933_1II
IBM GCGID
IBM description
codepoint
Unicode code
Unicode name
42
SP490000
Korean fill (NULL)
U+FFA0
Halfwidth Hangul Filler
OG000000
Hangul 'G'
U+FFA1
Halfwidth Hangul Letter kiyeok
OG100000
Hangul 'GG'
U+FFA2
Halfwidth Hangul Letter ssangkiyeok
OG20000
Hangul 'GS'
U+FFA3
Halfwidth Hangul Letter kiyeok-sios
ON00000
Hangul 'N'
U+FFA4
Halfwidth Hangul Letter nieun
ON150000
Hangul 'NJ'
U+FFA5
Halfwidth Hangul Letter nieun-cieuc
ON100000
Hangul 'NH'
U+FFA6
Halfwidth Hangul Letter nieun-hieuh
OD000000
Hangul 'D'
U+FFA7
Halfwidth Hangul Letter tikeut
43
44
45
46
47
48
49
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
381
Chapter 12: Character Set Codepoints
HANGULEBCDIC933_1II
Table 52: Hangul Codepoint Assignments for HANGULEBCDIC933_1II (continued)
IBM GCGID
IBM description
codepoint
Unicode code
Unicode name
52
OD100000
Hangul 'DD'
U+FFA8
Halfwidth Hangul Letter ssangtikeut
OL000000
Hangul 'L'
U+FFA9
Halfwidth Hangul Letter rieul
OL200000
Hangul 'LG'
U+FFAA
Halfwidth Hangul Letter rieul-kiyeok
OL400000
Hangul 'LM'
U+FFAB
Halfwidth Hangul Letter rieul-mieum
OL100000
Hangul 'LB'
U+FFAC
Halfwidth Hangul Letter rieul-pieup
OL600000
Hangul 'LS'
U+FFAD
Halfwidth Hangul Letter rieul-sios
OL700000
Hangul 'LT'
U+FFAE
Halfwidth Hangul Letter rieul-thieuth
OL500000
Hangul 'LP'
U+FFAF
Halfwidth Hangul Letter rieul-phieuph
OL300000
Hangul 'LH'
U+FFB0
Halfwidth Hangul Letter rieul-hieuh
OM000000
Hangul 'M'
U+FFB1
Halfwidth Hangul Letter mieum
OB000000
Hangul 'B'
U+FFB2
Halfwidth Hangul Letter pieup
OB100000
Hangul 'BB'
U+FFB3
Halfwidth Hangul Letter ssangpieup
OB2000000
Hangul 'BS'
U+FFB4
Halfwidth Hangul Letter pieup-sios
OS0000000
Hangul 'S'
U+FFB5
Halfwidth Hangul Letter sios
53
54
55
56
57
58
59
62
63
64
65
66
67
382
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 12: Character Set Codepoints
HANGULEBCDIC933_1II
Table 52: Hangul Codepoint Assignments for HANGULEBCDIC933_1II (continued)
IBM GCGID
IBM description
codepoint
Unicode code
Unicode name
68
OS100000
Hangul 'SS'
U+FFB6
Halfwidth Hangul Letter ssangsios
ON2000000
Hangul 'NG'/'W'
U+FFB7
Halfwidth Hangul Letter ieung
OJ000000
Hangul 'J'
U+FFB8
Halfwidth Hangul Letter cieuc
OJ100000
Hangul 'JJ'
U+FFB9
Halfwidth Hangul Letter ssangcieuc
OC200000
Hangul 'CH'
U+FFBA
Halfwidth Hangul Letter chieuch
OK000000
Hangul 'K'
U+FFBB
Halfwidth Hangul Letter khieukh
OT000000
Hangul 'T'
U+FFBC
Halfwidth Hangul Letter thieuth
OP000000
Hangul 'P'
U+FFBD
Halfwidth Hangul Letter phieuph
OH000000
Hangul 'H'
U+FFBE
Halfwidth Hangul Letter hieuh
OA000000
Hangul 'A'
U+FFC2
Halfwidth Hangul Letter 'A'
OA200000
Hangul 'AE'
U+FFC3
Halfwidth Hangul Letter 'AE'
OY200000
Hangul 'YA'
U+FFC4
Halfwidth Hangul Letter 'YA'
OY250000
Hangul 'YAE'
U+FFC5
Halfwidth Hangul Letter 'YAE'
OE200000
Hangul 'EO'
U+FFC6
Halfwidth Hangul Letter 'EO'
69
72
73
74
75
76
77
78
8A
8B
8C
8D
8E
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
383
Chapter 12: Character Set Codepoints
HANGULEBCDIC933_1II
Table 52: Hangul Codepoint Assignments for HANGULEBCDIC933_1II (continued)
IBM GCGID
IBM description
codepoint
Unicode code
Unicode name
8F
OE000000
Hangul 'E'
U+FFC7
Halfwidth Hangul Letter 'E'
OY400000
Hangul 'YEO'
U+FFCA
Halfwidth Hangul Letter 'YEO'
OY300000
Hangul 'YE'
U+FFCB
Halfwidth Hangul Letter 'YE'
OO000000
Hangul 'O'
U+FFCC
Halfwidth Hangul Letter 'O'
OO100000
Hangul 'OA'
U+FFCD
Halfwidth Hangul Letter 'WA'
OO200000
Hangul 'OAE'
U+FFCE
Halfwidth Hangul Letter 'WAE'
OO300000
Hangul 'OI'
U+FFCF
Halfwidth Hangul Letter 'OE'
OY500000
Hangul 'YO'
U+FFD2
Halfwidth Hangul Letter 'YO'
OU000000
Hangul 'U'
U+FFD3
Halfwidth Hangul Letter 'U'
OU300000
Hangul 'UEO'
U+FFD4
Halfwidth Hangul Letter 'WEO'
OU200000
Hangul 'UE'
U+FFD5
Halfwidth Hangul Letter 'WE'
OU400000
Hangul 'UI'
U+FFD6
Halfwidth Hangul Letter 'WI'
OY600000
Hangul 'YU'
U+FFD7
Halfwidth Hangul Letter 'YU'
OE300000
Hangul 'EU'
U+FFDA
Halfwidth Hangul Letter 'EU'
9A
9B
9C
9D
9E
9F
AA
AB
AC
AD
AE
AF
BA
384
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 12: Character Set Codepoints
KANJIEBCDIC5026_0I
Table 52: Hangul Codepoint Assignments for HANGULEBCDIC933_1II (continued)
IBM GCGID
IBM description
codepoint
Unicode code
Unicode name
BB
OE400000
Hangul 'EUI'
U+FFDB
Halfwidth Hangul Letter 'YI'
OI000000
Hangul 'I'
U+FFDC
Halfwidth Hangul Letter 'I'
BC
Graphic characters do not correspond to a known IBM codepage (given its CCSID of 00933,
the single-byte codepage should be 00833). The control characters and Eight Ones character
are non-standard because non-EBCDIC control characters appear in the range reserved for
control characters, all common control characters are not present, and the Eight Ones
character is not supported. Codepoint X'5F' should be a Logical NOT but the server defines it
as a Circumflex accent. Codepoint X'6A' should be a Broken Vertical line but the server
defines it as a Vertical Line. Codepoint X'A0' should be an Overline but to the server it is
unsupported. Codepoint X'E0' should be Won but the server defines it as Backslash.
The server incorrectly returns a X'4F' codepoint as a X'6A' codepoint. The server incorrectly
returns a X'5F' codepoint as a X'B0' codepoint. The server incorrectly returns an X'80'
codepoint as a X'BD' codepoint. The server incorrectly returns a X'B2' codepoint as an X'E0'
codepoint.
No special processing is performed by the server for control characters, except for Shift Out
and Shift In, which switch to and from double-byte codepoints.
KANJIEBCDIC5026_0I
The character set on the Teradata Database named KANJIEBCDIC5026_0I is intended as an
extended EBCDIC character set consisting of both one and two-bytes per character.
Architecturally, the EBCDIC encoding scheme consists of 256 possible values (codepoints)
represented as hexadecimal values in the range X'00' to X'FF'.
To support more than 256 codepoints, the EBCDIC encoding scheme is extended by defining
the Shift-out control character to switch from one byte per character to two bytes per
character until the Shift-in control character is encountered. The first byte of codepoints
between the Shift-out and Shift-in control characters is always between X'41' and X'FE'.
Currently, the second byte is also between X'41' and X'FE'. The X'4040' codepoint is defined
as the Double-byte Space character. No double-byte control characters exist. The double-byte
characters are not described.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
385
Chapter 12: Character Set Codepoints
KANJIEBCDIC5026_0I
Table 53: Single-byte Teradata KANJIEBCDIC5026_0I Codepage
0x
x0
x1
x2
x3
NUL
SOH
STX
ETX
x4
x5
x6
x7
x9
xA
xB
xC
xD
xE
xF
VT
FF
CR
SO
SI
IS4
IS3
IS2
IS1
ESC
ENQ
ACK
BEL
EOT
NAK
HT
1x
BS
2x
LF
3x
x8
ETB
SYN
CAN
EM
4x
SP
£
.
<
(
+
|
5x
&
!
¥
*
)
;
¬
6x
-
/
a
b
c
d
e
f
g
h
,
%
_
>
?
7x
[
i
j
k
l
m
n
o
p
`
#
@
'
=
"
8x
]
:
q
9x
r
Ax
~
¯
Bx
^
¢
\
t
u
v
w
x
y
z
Cx
{
A
B
C
D
E
F
G
H
I
Dx
}
J
K
L
M
N
O
P
Q
R
Ex
$
S
T
U
V
W
X
Y
Z
Fx
0
2
3
4
5
6
7
8
9
1
Control character codepoints
Reserved codepoints.
Katakana codepoints. Refer to Table 54 on page 386 for details.
The server will reject character data containing any single or double byte reserved codepoint
and will not identify which invalid codepoint was present.
Table 54: Kanji Codepoint Assignments for KANJIEBCDIC5026_0I
IBM GCGID
IBM description
codepoint
Unicode code
Unicode name
41
JQ700000
Katakana full stop
U+FF61
Halfwidth Ideographic Full Stop
JQ710000
Katakana left Bracket
U+FF62
Halfwidth Left Corner Bracket
42
386
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 12: Character Set Codepoints
KANJIEBCDIC5026_0I
Table 54: Kanji Codepoint Assignments for KANJIEBCDIC5026_0I (continued)
IBM GCGID
IBM description
codepoint
Unicode code
Unicode name
43
JQ720000
Katakana right Bracket
U+FF63
Halfwidth Right Corner Bracket
JQ730000
Katakana comma
U+FF64
Halfwidth Ideographic Comma
JQ74000
Katakana conjunctive symbol
U+FF65
Halfwidth Katakana Middle Dot
JW500000
Katakana 'WO'
U+FF66
Halfwidth Katakana Letter 'WO'
JA010000
Katakana 'a'
U+FF67
Halfwidth Katakana Letter Small 'a'
JI010000
Katakana 'i'
U+FF68
Halfwidth Katakana Letter Small 'i'
JU010000
Katakana 'u'
U+FF69
Halfwidth Katakana Letter Small 'u'
JE010000
Katakana 'e'
U+FF6A
Halfwidth Katakana Letter Small 'e'
JO010000
Katakana 'o'
U+FF6B
Halfwidth Katakana Letter Small 'o'
JY110000
Katakana 'ya'
U+FF6C
Halfwidth Katakana Letter Small 'ya'
JY310000
Katakana 'yu'
U+FF6D
Halfwidth Katakana Letter Small 'yu'
JY510000
Katakana 'yo'
U+FF6E
Halfwidth Katakana Letter Small 'yo'
JT310000
Katakana 'tu'/'tsu'
U+FF6F
Halfwidth Katakana Letter Small 'tu'
JX700000
Katakana prolonged sound symbol
U+FF70
Halfwidth Katakana-Hiragana prolonged sound symbol
44
45
46
47
48
49
51
52
53
54
55
56
58
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
387
Chapter 12: Character Set Codepoints
KANJIEBCDIC5026_0I
Table 54: Kanji Codepoint Assignments for KANJIEBCDIC5026_0I (continued)
IBM GCGID
IBM description
codepoint
Unicode code
Unicode name
81
JA000000
Katakana 'A'
U+FF71
Halfwidth Katakana Letter 'A'
JI000000
Katakana 'I'
U+FF72
Halfwidth Katakana Letter 'I'
JU000000
Katakana 'U'
U+FF73
Halfwidth Katakana Letter 'U'
JE000000
Katakana 'E'
U+FF74
Halfwidth Katakana Letter 'E'
JO000000
Katakana 'O'
U+FF75
Halfwidth Katakana Letter 'O'
JK100000
Katakana 'KA'
U+FF76
Halfwidth Katakana Letter 'KA'
JK200000
Katakana 'KI'
U+FF77
Halfwidth Katakana Letter 'KI'
JK300000
Katakana 'KU'
U+FF78
Halfwidth Katakana Letter 'KU'
JK400000
Katakana 'KE'
U+FF79
Halfwidth Katakana Letter 'KE'
JK500000
Katakana 'KO'
U+FF7A
Halfwidth Katakana Letter 'KO'
LQ010000
'q' Small
U+0071
Latin Small Letter 'q'
JS100000
Katakana 'SA'
U+FF7B
Halfwidth Katakana Letter 'SA'
JS200000
Katakana 'SI'
U+FF7C
Halfwidth Katakana Letter 'SI'
JS300000
Katakana 'SU'
U+FF7D
Halfwidth Katakana Letter 'SU'
82
83
84
85
86
87
88
89
8A
8B
8C
8D
8E
388
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 12: Character Set Codepoints
KANJIEBCDIC5026_0I
Table 54: Kanji Codepoint Assignments for KANJIEBCDIC5026_0I (continued)
IBM GCGID
IBM description
codepoint
Unicode code
Unicode name
8F
JS400000
Katakana 'SE'
U+FF7E
Halfwidth Katakana Letter 'SE'
JS500000
Katakana 'SO'
U+FF7F
Halfwidth Katakana Letter 'SO'
JT100000
Katakana 'TA'
U+FF80
Halfwidth Katakana Letter 'TA'
JT200000
Katakana 'TI'
U+FF81
Halfwidth Katakana Letter 'TI'
JT300000
Katakana 'TU'
U+FF82
Halfwidth Katakana Letter 'TU'
JT400000
Katakana 'TE'
U+FF83
Halfwidth Katakana Letter 'TE'
JT500000
Katakana 'TO'
U+FF84
Halfwidth Katakana Letter 'TO'
JN100000
Katakana 'NA'
U+FF85
Halfwidth Katakana Letter 'NA'
JN200000
Katakana 'NI'
U+FF86
Halfwidth Katakana Letter 'NI'
JN300000
Katakana 'NU'
U+FF87
Halfwidth Katakana Letter 'NU'
JN140000
Katakana 'NE'
U+FF88
Halfwidth Katakana Letter 'NE'
JN500000
Katakana 'NO'
U+FF89
Halfwidth Katakana Letter 'NO'
JH100000
Katakana 'HA'
U+FF8AD
Halfwidth Katakana Letter 'HA'
JH200000
Katakana 'HI'
U+FF8B
Halfwidth Katakana Letter 'HI'
90
91
92
93
94
95
96
97
98
99
9A
9D
9E
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
389
Chapter 12: Character Set Codepoints
KANJIEBCDIC5026_0I
Table 54: Kanji Codepoint Assignments for KANJIEBCDIC5026_0I (continued)
IBM GCGID
IBM description
codepoint
Unicode code
Unicode name
9F
JH300000
Katakana 'HU'/'FU'
U+FF8C
Halfwidth Katakana Letter 'HU'
LS010000
Katakana 'HE'
U+0073
Halfwidth Katakana Letter 'HE'
LT010000
Katakana 'HO'
U+0074
Halfwidth Katakana Letter 'HO'
LU010000
Katakana 'MA'
U+0075
Halfwidth Katakana Letter 'MA'
LV010000
Katakana 'MI'
U+0076
Halfwidth Katakana Letter 'MI'
LW010000
Katakana 'MU'
U+0077
Halfwidth Katakana Letter 'MU'
LX010000
Katakana 'ME'
U+0078
Halfwidth Katakana Letter 'ME'
LY010000
Katakana 'MO'
U+0079
Halfwidth Katakana Letter 'MO'
LZ010000
Katakana 'YA'
U+007A
Halfwidth Katakana Letter 'YA'
SM210000
Katakana 'YU'
U+00AA
Halfwidth Katakana Letter 'YU'
SM660000
Katakana 'YO'
U+00AC
Halfwidth Katakana Letter 'YO'
SM060000
Katakana 'RA'
U+005B
Halfwidth Katakana Letter 'RA'
SM530000
Katakana 'RI'
U+00AE
Halfwidth Katakana Letter 'RI'
SM150000
Katakana 'RU'
U+00AF
Halfwidth Katakana Letter 'RU'
A2
A3
A4
A5
A6
A7
A8
A9
AA
AC
AD
AE
AF
390
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 12: Character Set Codepoints
KANJIEBCDIC5035_0I
Table 54: Kanji Codepoint Assignments for KANJIEBCDIC5026_0I (continued)
IBM GCGID
IBM description
codepoint
Unicode code
Unicode name
BA
JR400000
Katakana 'RE'
U+FF9A
Halfwidth Katakana Letter 'RE'
JR500000
Katakana 'RO'
U+FF9B
Halfwidth Katakana Letter 'RO'
JW100000
Katakana 'WA'
U+FF9C
Halfwidth Katakana Letter 'WA'
JN000000
Katakana 'N'
U+FF9D
Halfwidth Katakana Letter 'N'
JX710000
Voiced sound symbol
U+FF9E
Halfwidth Katakana Voiced sound Mark
JX720000
Semi-voiced sound symbol
U+FF9F
Halfwidth Katakana Semi-voiced sound Mark
BB
BC
BD
BE
BF
While graphic characters adhere to the standard definition for IBM code page 00290, the
control characters and Eight Ones character do not because all common control characters
are not present, and a non-EBCDIC control character replaces the Eight Ones character.
The server defines the Overline character for KANJIEBCDIC5026_0I,
KANJIEBCDIC5035_0I, KATAKANA, and SCHEBCDIC935_2IJ differently than for the
other character sets. So if sent to the server using a character set in one group but received
from the server using a character set in the other group, the codepoint will change.
Note: The server incorrectly returns codepoint X'5F' as an X'3F' codepoint.
No special processing is performed by the server for control characters, except for Shift Out
and Shift In, which switch to and from double-byte codepoints.
KANJIEBCDIC5035_0I
The character set on the Teradata Database named KANJIEBCDIC5035_0I is intended as an
extended EBCDIC character set consisting of both one and two-bytes per character.
Architecturally, the EBCDIC encoding scheme consists of 256 possible values (codepoints)
represented as hexadecimal values in the range X'00' to X'FF'.
To support more than 256 codepoints, the EBCDIC encoding scheme is extended by defining
the Shift-out control character to switch from one byte per character to two bytes per
character until the Shift-in control character is encountered. The first byte of codepoints
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
391
Chapter 12: Character Set Codepoints
KANJIEBCDIC5035_0I
between the Shift-out and Shift-in control characters is always between X'41' and X'FE'.
Currently, the second byte is also between X'41' and X'FE'. The X'4040' codepoint is defined
as the Double-byte Space character. No double-byte control characters exist. The double-byte
characters are not described.
Table 55: Single-byte Teradata KANJIEBCDIC5035_0I Codepage
0x
x0
x1
x2
x3
NUL
SOH
STX
ETX
x4
x5
x6
x7
x9
xA
xB
xC
xD
xE
xF
VT
FF
CR
SO
SI
IS4
IS3
IS2
IS1
ESC
ENQ
ACK
BEL
EOT
NAK
HT
1x
BS
2x
LF
3x
x8
ETB
SYN
CAN
EM
4x
SP
¢
.
<
(
+
|
5x
&
!
$
*
)
;
¬
6x
-
,
%
_
>
?
#
@
'
=
"
/
7x
`
8x
a
b
c
d
e
f
g
h
i
9x
j
k
l
m
n
o
p
q
r
t
u
v
w
x
y
z
Ax
¯
~
s
Bx
^
£
¥
Cx
{
A
B
C
D
E
F
G
H
I
Dx
}
J
K
L
M
N
O
P
Q
R
Ex
\
S
T
U
V
W
X
Y
Z
Fx
0
2
3
4
5
6
7
8
9
1
:
[
]
Control character codepoints
Reserved codepoints
Katakana codepoints. Refer to Table 56 on page 393 for details.
The server will reject character data containing any single or double byte reserved codepoint
and will not identify which invalid codepoint was present.
392
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 12: Character Set Codepoints
KANJIEBCDIC5035_0I
Table 56: Kanji Codepoint Assignments for KANJIEBCDIC5035_0I
IBM GCGID
IBM description
codepoint
Unicode code
Unicode name
42
JQ700000
Katakana full stop
U+FF61
Halfwidth Ideographic Full Stop
JQ710000
Katakana left Bracket
U+FF62
Halfwidth Left Corner Bracket
JQ720000
Katakana right Bracket
U+FF63
Halfwidth Right Corner Bracket
JQ730000
Katakana comma
U+FF64
Halfwidth Ideographic Comma
JQ74000
Katakana conjunctive symbol
U+FF65
Halfwidth Katakana Middle Dot
JW500000
Katakana 'WO'
U+FF66
Halfwidth Katakana Letter 'WO'
JA010000
Katakana 'a'
U+FF67
Halfwidth Katakana Letter Small 'a'
JI010000
Katakana 'i'
U+FF68
Halfwidth Katakana Letter Small 'i'
JU010000
Katakana 'u'
U+FF69
Halfwidth Katakana Letter Small 'u'
JE010000
Katakana 'e'
U+FF6A
Halfwidth Katakana Letter Small 'e'
JO010000
Katakana 'o'
U+FF6B
Halfwidth Katakana Letter Small 'o'
JY110000
Katakana 'ya'
U+FF6C
Halfwidth Katakana Letter Small 'ya'
JY310000
Katakana 'yu'
U+FF6D
Halfwidth Katakana Letter Small 'yu'
JY510000
Katakana 'yo'
U+FF6E
Halfwidth Katakana Letter Small 'yo'
43
44
45
46
47
48
49
51
52
53
54
55
56
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
393
Chapter 12: Character Set Codepoints
KANJIEBCDIC5035_0I
Table 56: Kanji Codepoint Assignments for KANJIEBCDIC5035_0I (continued)
IBM GCGID
IBM description
codepoint
Unicode code
Unicode name
57
JT310000
Katakana 'tu'/'tsu'
U+FF6F
Halfwidth Katakana Letter Small 'tu'
JX700000
Katakana prolonged sound symbol
U+FF70
Halfwidth Katakana-Hiragana prolonged sound mark
JA000000
Katakana 'A'
U+FF71
Halfwidth Katakana Letter 'A'
JI000000
Katakana 'I'
U+FF72
Halfwidth Katakana Letter 'I'
JU000000
Katakana 'U'
U+FF73
Halfwidth Katakana Letter 'U'
JE000000
Katakana 'E'
U+FF74
Halfwidth Katakana Letter 'E'
JO000000
Katakana 'O'
U+FF75
Halfwidth Katakana Letter 'O'
JK100000
Katakana 'KA'
U+FF76
Halfwidth Katakana Letter 'KA'
JK200000
Katakana 'KI'
U+FF77
Halfwidth Katakana Letter 'KI'
JK300000
Katakana 'KU'
U+FF78
Halfwidth Katakana Letter 'KU'
JK400000
Katakana 'KE'
U+FF79
Halfwidth Katakana Letter 'KE'
JK500000
'Katakana 'KO'
U+FF7A
Halfwidth Katakana Letter 'KO'
JS100000
Katakana 'SA'
U+FF7B
Halfwidth Katakana Letter 'SA'
JS200000
Katakana 'SI'/'SHI'
U+FF7C
Halfwidth Katakana Letter 'SI'
58
59
62
63
64
65
66
67
68
69
70
71
72
394
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 12: Character Set Codepoints
KANJIEBCDIC5035_0I
Table 56: Kanji Codepoint Assignments for KANJIEBCDIC5035_0I (continued)
IBM GCGID
IBM description
codepoint
Unicode code
Unicode name
73
JS300000
Katakana 'SU'
U+FF7D
Halfwidth Katakana Letter 'SU'
JS400000
Katakana 'SE'
U+FF7E
Halfwidth Katakana Letter 'SE'
JS500000
Katakana 'SO'
U+FF7F
Halfwidth Katakana Letter 'SO'
JT100000
Katakana 'TA'
U+FF80
Halfwidth Katakana Letter 'TA'
JT200000
Katakana 'TI'/'CHI'
U+FF81
Halfwidth Katakana Letter 'TI'
JT300000
Katakana 'TU'/'TSU'
U+FF82
Halfwidth Katakana Letter 'TU'
JT400000
Katakana 'TE'
U+FF83
Halfwidth Katakana Letter 'TE'
JT500000
Katakana 'TO'
U+FF84
Halfwidth Katakana Letter 'TO'
JN100000
Katakana 'NA'
U+FF85
Halfwidth Katakana Letter 'NA'
JN200000
Katakana 'NI'
U+FF86
Halfwidth Katakana Letter 'NI'
JN300000
Katakana 'NU'
U+FF87
Halfwidth Katakana Letter 'NU'
JN400000
Katakana 'NE'
U+FF88
Halfwidth Katakana Letter 'NE'
JN500000
Katakana 'NO'
U+FF89
Halfwidth Katakana Letter 'NO'
JH100000
Katakana 'MH'
U+FF8A
Halfwidth Katakana Letter 'MH'
74
75
76
77
78
8A
8B
8C
8D
8E
8F
9A
9B
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
395
Chapter 12: Character Set Codepoints
KANJIEBCDIC5035_0I
Table 56: Kanji Codepoint Assignments for KANJIEBCDIC5035_0I (continued)
IBM GCGID
IBM description
codepoint
Unicode code
Unicode name
9C
JH200000
Katakana 'HI'
U+FF8B
Halfwidth Katakana Letter 'HI'
JH300000
Katakana 'HU'/'FU'
U+FF8C
Halfwidth Katakana Letter 'HU'
JH400000
Katakana 'HE'
U+FF8D
Halfwidth Katakana Letter 'HE'
JH500000
Katakana 'HO'
U+FF8E
Halfwidth Katakana Letter 'HO'
JM100000
Katakana 'MA'
U+FF8F
Halfwidth Katakana Letter 'MA'
JM200000
Katakana 'MI'
U+FF90
Halfwidth Katakana Letter 'MI'
JM300000
Katakana 'MU'
U+FF91
Halfwidth Katakana Letter 'MU'
JM400000
Katakana 'ME'
U+FF92
Halfwidth Katakana Letter 'ME'
JM500000
Katakana 'MO'
U+FF93
Halfwidth Katakana Letter 'MO'
JY100000
Katakana 'YA'
U+FF94
Halfwidth Katakana Letter 'YA'
JY300000
Katakana 'YU'
U+FF95
Halfwidth Katakana Letter 'YU'
JY500000
Katakana 'YO'
U+FF96
Halfwidth Katakana Letter 'YO'
JR100000
Katakana 'RA'
U+FF97
Halfwidth Katakana Letter 'RA'
JR200000
Katakana Letter 'RI'
U+FF98
Halfwidth Katakana Letter 'RI'
9D
9E
9F
AA
AB
AC
AE
AF
B3
B4
B5
B6
B7
396
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 12: Character Set Codepoints
KATAKANAEBCDIC
Table 56: Kanji Codepoint Assignments for KANJIEBCDIC5035_0I (continued)
IBM GCGID
IBM description
codepoint
Unicode code
Unicode name
B8
JR300000
Katakana 'RU'
U+FF99
Halfwidth Katakana Letter 'RU'
JR400000
Katakana 'RE'
U+FF9A
Halfwidth Katakana Letter 'RE'
JR500000
Katakana 'RO'
U+FF9B
Halfwidth Katakana Letter 'RO'
JW100000
Katakana 'WA'
U+FF9C
Halfwidth Katakana Letter 'WA'
JN000000
Katakana 'N'
U+FF9D
Halfwidth Katakana Letter 'N'
JX710000
Voiced sound symbol
U+FF9E
Halfwidth Katakana Voiced sound Mark
JX720000
Semi-voiced sound symbol
U+FF9F
Halfwidth Katakana Semi-voiced sound Mark
B9
BA
BB
BC
BE
BF
While graphic characters adhere to the standard definition for IBM code page 01027, the
control characters and Eight Ones character do not because all common control characters
are not present, and the Eight Ones character is not included.
The server defines the Overline character for KANJIEBCDIC5026_0I,
KANJIEBCDIC5035_0I, Katakana, and SCHEBCDIC935_2IJ differently than for the other
character sets. So if sent to the server using a character set in one group but received from the
server using a character set in the other group, the codepoint will change.
No special processing is performed by the server for control characters, except for Shift Out
and Shift In, which switch to and from double-byte codepoints.
KATAKANAEBCDIC
The character set on the Teradata Database named KATAKANAEBCDIC5026_0I is intended
as an extended EBCDIC character set consisting of both one and two-bytes per character.
Architecturally, the EBCDIC encoding scheme consists of 256 possible values (codepoints)
represented as hexadecimal values in the range X'00' to X'FF'
To support more than 256 codepoints, the EBCDIC encoding scheme is extended by defining
the Shift-out control character to switch from one byte per character to two bytes per
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
397
Chapter 12: Character Set Codepoints
KATAKANAEBCDIC
character until the Shift-in control character is encountered. The first byte of codepoints
between the Shift-out and Shift-in control characters is always between X'41' and X'FE'.
Currently, the second byte is also between X'41' and X'FE'. The X'4040' codepoint is defined
as the Double-byte Space character. No double-byte control characters exist. The double-byte
characters are not described.
Table 57: Single-byte Teradata KATAKANAEBCDIC Codepage
x0
x1
x2
x3
0x
NUL
SOH
STX
ETX
1x
¢
¬
/
x4
x5
x7
x8
HT
a
2x
LF
3x
x6
SYN
x9
xA
y
BS
b
ETB
ESC
c
CAN
xB
xC
xD
xE
xF
VT
FF
CR
SO
SI
IS4
IS3
IS2
IS1
ENQ
ACK
BEL
EM
EOT
~
NAK
4x
SP
£
.
<
(
+
|
5x
&
!
¥
*
)
;
^
6x
-
/
7x
p
q
Ax
[
¯
Bx
]
Cx
{
Dx
}
Ex
$
Fx
0
d
e
f
g
h
i
j
,
%
_
>
?
r
s
t
u
v
w
x
´
:
#
@
'
=
"
A
B
C
D
E
F
G
H
I
z
k
l
m
n
o
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
2
3
4
5
6
7
8
9
8x
9x
1
Control character codepoints
Reserved codepoints
Katakana codepoints. Refer to Table 58 on page 399 for details.
The server will reject character data containing any single or double byte reserved codepoint
and will not identify which invalid codepoint was present.
398
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 12: Character Set Codepoints
KATAKANAEBCDIC
Table 58: Katakana Codepoint Assignments for KATAKANAEBCDIC
IBM GCGID
IBM description
codepoint
Unicode code
Unicode name
41
JQ700000
Katakana full stop
U+FF61
Halfwidth Ideographic Full Stop
JQ710000
Katakana left Bracket
U+FF62
Halfwidth Left Corner Bracket
JQ720000
Katakana right Bracket
U+FF63
Halfwidth Right Corner Bracket
JQ730000
Katakana comma
U+FF64
Halfwidth Ideographic Comma
JQ74000
Katakana conjunctive symbol
U+FF65
Halfwidth Katakana Middle Dot
JW500000
Katakana 'WO'
U+FF66
Halfwidth Katakana Letter 'WO'
JA010000
Katakana 'a'
U+FF67
Halfwidth Katakana Letter Small 'a'
JI010000
Katakana 'i'
U+FF68
Halfwidth Katakana Letter Small 'i'
JU010000
Katakana 'u'
U+FF69
Halfwidth Katakana Letter Small 'u'
JE010000
Katakana 'e'
U+FF6A
Halfwidth Katakana Letter Small 'e'
JO010000
Katakana 'o'
U+FF6B
Halfwidth Katakana Letter Small 'o'
JY110000
Katakana 'ya'
U+FF6C
Halfwidth Katakana Letter Small 'ya'
JY310000
Katakana 'yu'
U+FF6D
Halfwidth Katakana Letter Small 'yu'
JY510000
Katakana 'yo'
U+FF6E
Halfwidth Katakana Letter Small 'yo'
42
43
44
45
46
47
48
49
51
52
53
54
55
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
399
Chapter 12: Character Set Codepoints
KATAKANAEBCDIC
Table 58: Katakana Codepoint Assignments for KATAKANAEBCDIC (continued)
IBM GCGID
IBM description
codepoint
Unicode code
Unicode name
56
JT310000
Katakana 'tu'/'tsu'
U+FF6F
Halfwidth Katakana Letter Small 'tu'
JX700000
Katakana prolonged sound symbol
U+FF70
Halfwidth Katakana-Hiragana prolonged sound mark
JA000000
Katakana 'A'
U+FF71
Halfwidth Katakana Letter 'A'
JI000000
Katakana 'I'
U+FF72
Halfwidth Katakana Letter 'I'
JU000000
Katakana 'U'
U+FF73
Halfwidth Katakana Letter 'U'
JE000000
Katakana 'E'
U+FF74
Halfwidth Katakana Letter 'E'
JO000000
Katakana 'O'
U+FF75
Halfwidth Katakana Letter 'O'
JK100000
Katakana 'KA'
U+FF76
Halfwidth Katakana Letter 'KA'
JK200000
Katakana 'KI'
U+FF77
Halfwidth Katakana Letter 'KI'
JK300000
Katakana 'KU'
U+FF78
Halfwidth Katakana Letter 'KU'
JK400000
Katakana 'KE'
U+FF79
Halfwidth Katakana Letter 'KE'
JK500000
Katakana 'KO'
U+FF7A
Halfwidth Katakana Letter 'KO'
JS100000
Katakana 'SA'
U+FF7B
Halfwidth Katakana Letter 'SA'
JS200000
Katakana 'SI'/'SHI'
U+FF7C
Halfwidth Katakana Letter 'SI'
58
81
82
83
84
85
86
87
88
89
8A
8C
8D
400
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 12: Character Set Codepoints
KATAKANAEBCDIC
Table 58: Katakana Codepoint Assignments for KATAKANAEBCDIC (continued)
IBM GCGID
IBM description
codepoint
Unicode code
Unicode name
8E
JS300000
Katakana 'SU'
U+FF7D
Halfwidth Katakana Letter 'SU'
JS400000
Katakana 'SE'
U+FF7E
Halfwidth Katakana Letter 'SE'
JS500000
Katakana 'SO'
U+FF7F
Halfwidth Katakana Letter 'SO'
JT100000
Katakana 'TA'
U+FF80
Halfwidth Katakana Letter 'TA'
JT200000
Katakana 'TI'/'CHI'
U+FF81
Halfwidth Katakana Letter 'TI'
JT300000
Katakana 'TU'/'TSU'
U+FF82
Halfwidth Katakana Letter 'TU'
JT400000
Katakana 'TE'
U+FF83
Halfwidth Katakana Letter 'TE'
JT500000
Katakana 'TO'
U+FF84
Halfwidth Katakana Letter 'TO'
JN100000
Katakana 'NA'
U+FF85
Halfwidth Katakana Letter 'NA'
JN200000
Katakana 'NI'
U+FF86
Halfwidth Katakana Letter 'NI'
JN300000
Katakana 'NU'
U+FF87
Halfwidth Katakana Letter 'NU'
JN400000
Katakana 'NE'
U+FF88
Halfwidth Katakana Letter 'NE'
JN500000
Katakana 'NO'
U+FF89
Halfwidth Katakana Letter 'NO'
JH100000
Katakana 'HA'
U+FF8A
Halfwidth Katakana Letter 'HA'
8F
90
91
92
93
94
95
96
97
98
99
9A
9D
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
401
Chapter 12: Character Set Codepoints
KATAKANAEBCDIC
Table 58: Katakana Codepoint Assignments for KATAKANAEBCDIC (continued)
IBM GCGID
IBM description
codepoint
Unicode code
Unicode name
9E
JH200000
Katakana 'HI'
U+FF8B
Halfwidth Katakana Letter 'HI'
JH300000
Katakana 'HU'/'FU'
U+FF8C
Halfwidth Katakana Letter 'HU'
JH400000
Katakana 'HE'
U+FF8D
Halfwidth Katakana Letter 'HE'
JH500000
Katakana 'HO'
U+FF8E
Halfwidth Katakana Letter 'HO'
JM100000
Katakana 'MA'
U+FF8F
Halfwidth Katakana Letter 'MA'
JM200000
Katakana 'MI'
U+FF90
Halfwidth Katakana Letter 'MI'
JM300000
Katakana 'MU'
U+FF91
Halfwidth Katakana Letter 'MU'
JM400000
Katakana 'ME'
U+FF92
Halfwidth Katakana Letter 'ME'
JM500000
Katakana 'MO'
U+FF93
Halfwidth Katakana Letter 'MO'
JY100000
Katakana 'YA'
U+FF94
Halfwidth Katakana Letter 'YA'
JY300000
Katakana 'YU'
U+FF95
Halfwidth Katakana Letter 'YU'
JY500000
Katakana 'YO'
U+FF96
Halfwidth Katakana Letter 'YO'
JR100000
Katakana 'RA'
U+FF97
Halfwidth Katakana Letter 'RA'
JR200000
Katakana 'RI'
U+FF98
Halfwidth Katakana Letter 'RI'
9F
A2
A3
A4
A5
A6
A7
A8
A9
AA
AC
AD
AE
402
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 12: Character Set Codepoints
SCHEBCDIC935_2IJ
Table 58: Katakana Codepoint Assignments for KATAKANAEBCDIC (continued)
IBM GCGID
IBM description
codepoint
Unicode code
Unicode name
AF
JR300000
Katakana 'RU'
U+FF99
Halfwidth Katakana Letter 'RU'
JR400000
Katakana 'RE'
U+FF9A
Halfwidth Katakana Letter 'RE'
JR500000
Katakana 'RO'
U+FF9B
Halfwidth Katakana Letter 'RO'
JW100000
Katakana 'WA'
U+FF9C
Halfwidth Katakana Letter 'WA'
JN000000
Katakana 'N'
U+FF9D
Halfwidth Katakana Letter 'N'
JX710000
Voiced sound symbol
U+FF9E
Halfwidth Katakana Voiced sound Mark
JX720000
Semi-voiced sound symbol
U+FF9F
Halfwidth Katakana Semi-voiced sound Mark
BA
BB
BC
BD
BE
BF
This is not a well-formed EBCDIC encoding because graphic characters appear in the range
reserved for control characters, all common control characters are not present, and the
codepoint reserved for the Eight Ones character is not included.
The server intentionally returns lower case English alphabetic characters as their upper-case
equivalents. That is, codepoints X'14', X'17', X'35', X'64' through X'6A', X'CB' through X'CF',
X'70' through X'78', X'09', and X'CA' are returned as X'C1' through X'C9', X'D1' through
X'D9', and X'E2' through X'E9', respectively.
The server defines the Overline character for KANJIEBCDIC5026_0I,
KANJIEBCDIC5035_0I, KATAKANAEBCDIC, and SCHEBCDIC935_2IJ differently than for
the other character sets. So if sent to the server using a character set in one group but received
from the server using a character set in the other group, the codepoint will change.
No special processing is performed by the server for control characters, except for Shift Out
and Shift In, which switch to and from double-byte codepoints.
SCHEBCDIC935_2IJ
The character set on the Teradata Database named SCHEBCDIC935_2IJ is intended as an
extended EBCDIC character set consisting of both one and two-bytes per character.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
403
Chapter 12: Character Set Codepoints
SCHEBCDIC935_2IJ
Architecturally, the EBCDIC encoding scheme consists of 256 possible values (codepoints)
represented as hexadecimal values in the range X'00' to X'FF'
To support more than 256 codepoints, the EBCDIC encoding scheme is extended by defining
the Shift-out control character to switch from one byte per character to two bytes per
character until the Shift-in control character is encountered. The first byte of codepoints
between the Shift-out and Shift-in control characters is always between X'41' and X'FE'.
Currently, the second byte is also between X'41' and X'FE'. The X'4040' codepoint is defined
as the Double-byte Space character. No double-byte control characters exist. The double-byte
characters are not described.
Table 59: Single-byte Teradata SCHEBCDIC935_2IJ Codepage
x0
x1
x2
x3
x4
x5
x6
x7
x8
x9
xA
xB
xC
xD
xE
xF
0x
NUL
SOH
STX
ETX
ST
HT
SSA
DEL
EPA
RI
SS2
VT
FF
CR
SO
SI
1x
DLE
DC1
DC2
DC3
OSC
NEL
BS
ESA
CAN
EM
PU2
SS3
IS4
IS3
IS2
IS1
2x
UC1
UC2
BPH
NBH
UC3
LF
ETB
ESC
HTS
HTJ
VTS
PLD
PLU
ENQ
ACK
BEL
3x
DCS
PU1
SYN
STS
CCH
MW
SPA
EOT
SOS
UC4
SCI
CSI
DC4
NAK
PM
4x
SP
£
.
<
(
+
|
5x
&
!
¥
*
)
;
¬
6x
-
¦
,
%
_
>
?
:
#
@
'
=
"
[
]
/
7x
`
8x
a
b
c
d
e
f
g
h
i
9x
j
k
l
m
n
o
p
q
r
¯
s
t
u
v
w
x
y
z
Ax
~
Bx
^
Cx
{
A
B
C
D
E
F
G
H
I
Dx
}
J
K
L
M
N
O
P
Q
R
Ex
$
S
T
U
V
W
X
Y
Z
Fx
0
2
3
4
5
6
7
8
9
\
1
APC
Control character codepoints
Reserved codepoints
The server will reject character data containing any single or double byte reserved codepoint
and will not identify which invalid codepoint was present.
While graphic characters adhere to the standard definition for IBM code page 00836, the
control characters and Eight Ones character do not because non-EBCDIC control characters
appear in the range reserved for control characters, all common control characters are not
present, and a non-EBCDIC control character replaces the Eight Ones character.
404
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 12: Character Set Codepoints
TCHEBCDIC937_3IB
While IBM GCGIDs differentiate the Yen (SC050000) from the Yuan (SC120000) and here
codepoint X'5B' is the Yuan, Unicode and the server do not and use U+00A5 for both.
The server defines the Overline character for KANJIEBCDIC5026_0I,
KANJIEBCDIC5035_0I, KATAKANAEBCDIC, and SCHEBCDIC935_2IJ differently than for
the other character sets. So if sent to the server using a character set in one group but received
from the server using a character set in the other group, the codepoint will change.
No special processing is performed by the server for control characters, except for Shift Out
and Shift In, which switch to and from double-byte codepoints. The non-EBCDIC control
characters Single Shift Two and Single Shift Three imply nothing about subsequent
codepoints.
TCHEBCDIC937_3IB
The character set on the Teradata Database named TCHEBCDIC937_3IB is intended as an
extended EBCDIC character set consisting of both one and two-bytes per character.
Architecturally, the EBCDIC encoding scheme consists of 256 possible values (codepoints)
represented as hexadecimal values in the range X'00' to X'FF'
To support more than 256 codepoints, the EBCDIC encoding scheme is extended by defining
the Shift-out control character to switch from one byte per character to two bytes per
character until the Shift-in control character is encountered. The first byte of codepoints
between the Shift-out and Shift-in control characters is always between X'41' and X'FE'.
Currently, the second byte is also between X'41' and X'FE'. The X'4040' codepoint is defined
as the Double-byte Space character. No double-byte control characters exist. The double-byte
characters are not described.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
405
Chapter 12: Character Set Codepoints
TCHEBCDIC937_3IB
Table 60: Single-byte Teradata TCHEBCDIC937_3IB Codepage
x0
x1
x2
x3
x4
x5
x6
x7
x8
x9
xA
xB
xC
xD
xE
xF
0x
NUL
SOH
STX
ETX
ST
HT
SSA
DEL
EPA
RI
SS2
VT
FF
CR
SO
SI
1x
DLE
DC1
DC2
DC3
OSC
NEL
BS
ESA
CAN
EM
PU2
SS3
IS4
IS3
IS2
IS1
2x
UC1
UC2
BPH
NBH
UC3
LF
ETB
ESC
HTS
HTJ
VTS
PLD
PLU
ENQ
ACK
BEL
3x
DCS
PU1
SYN
STS
CCH
MW
SPA
EOT
SOS
UC4
SCI
CSI
DC4
NAK
PM
4x
SP
¢
.
<
(
+
|
5x
&
!
$
*
)
;
¬
6x
-
¦
,
%
_
>
?
:
#
@
'
=
"
[
]
/
7x
¡
`
8x
a
b
c
d
e
f
g
h
i
9x
j
k
l
m
n
o
p
q
r
Ax
~
s
t
u
v
w
x
y
z
Bx
^
Cx
{
A
B
C
D
E
F
G
H
I
Dx
}
J
K
L
M
N
O
P
Q
R
Ex
\
S
T
U
V
W
X
Y
Z
Fx
0
2
3
4
5
6
7
8
9
1
APC
Control character codepoints
Reserved codepoints
The server will reject character data containing any single or double byte reserved codepoint
and will not identify which invalid codepoint was present.
Graphic characters do not correspond to a known IBM codepage (given its CCSID of 00937,
the single-byte codepage should be 00037). The control characters and Eight Ones character
are non-standard because non-EBCDIC control characters appear in the range reserved for
control characters, all common control characters are not present, and a non-EBCDIC
control character replaces the Eight Ones character.
No special processing is performed by the server for control characters, except for Shift Out
and Shift In, which switch to and from double-byte codepoints. The non-EBCDIC control
characters Single Shift Two and Single Shift Three imply nothing about subsequent
codepoints.
406
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
CHAPTER 13
User-Defined Character Sets
The Teradata Database supplies several character sets whose attributes are also known to
CLIv2. The customer may define additional character sets to the server, and these are known
as user-defined character sets. The attributes of such character sets must also be defined to
CLIv2. This is done using the CLIv2 TRD2XUT utility, which accepts descriptions of one or
more user-defined character sets and creates a load module named TRD2XCI that may then
be made available to the CLIv2 runtime routines. All user-defined character sets available to
the CLIv2 runtime are defined in one TRD2XCI load module. The description of character
sets supplied by the server cannot be altered. If this is done, no error will be generated,
although the standard definition will always be used.
The utility may be run under either z/OS or VOS3. Execution as a CICS or IMS transaction is
not supported. For z/OS and VOS3, a sample JCL cataloged procedure is distributed as
TRD2XUT SAMPz/OS.
The input to the TRD2XUT utility consists of records of fixed or unspanned varying length. If
the records are fixed 80 byte records, columns 73 through 80 are reserved for traditional
sequence numbers and are ignored; otherwise, the entire record is used. Records containing
only blanks are ignored. If the first non-blank characters of a record are /*, the record is
considered a comment and ignored.
Statements may be continued onto multiple records using continuation characters. If the last
non-blank character is a minus sign, the minus sign is discarded and the statement continues
with the first column of the next record. If the last non-blank character is a plus sign, the plus
sign is discarded and the statement continues with the first non-blank column of the next
record. A statement may be continued onto any number of records. A semicolon may be
added to the end of any statement. The semicolon is discarded before the statement is
processed.
Directives
Each statement contains a directive or is associated with a directive. A directive identifies the
purpose of the statement. The following directives are supported:
Directive
Description
CHAR
Ignored by CLIv2, allowing the same file to be used by both CLIv2 and
TDP.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
407
Chapter 13: User-Defined Character Sets
Directives
Directive
Description
CHARSET
Explicitly begins a definition and identifies the encoding scheme.
END
Ends processing of records in the file.
MONOCASE
Ignored by CLIv2, allowing the same file to be used by both CLIv2 and
TDP.
SANITIZE
Ignored by CLIv2, allowing the same file to be used by both CLIv2 and
TDP.
UNICODE
Defines single-byte codepoints in the character set.
A file describes one or more character sets. Each description begins with a CHARSET directive
and ends with the next CHARSET directive, the END directive, or the last record in the file.
The CHAR, MONOCASE, SANITIZE, and UNICODE directives may appear in any order
within a description.
The following sections provide information and syntax diagrams for each directive. Refer to
Appendix A: “How to Read Syntax Diagrams,” for additional information on syntax
diagrams.
CHARSET
The CHARSET directive explicitly begins a definition and indicates the encoding scheme.
Syntax
CHARSET
CHARS
NAME
NAM
character_set_name
ENCODING
ENC
EBCDIC
E
IBMSOSI
I
ASCII
A
BIGFIVE
R
SJIS
S
UHC
EUC-CN
EUC-KR
T
EUC-JP
U
UTF8
UTF-16
2417C005
Usage
NAME identifies the character set to which the description applies. The name may include a
standard suffix that defines the encoding scheme. The standard suffix consists of an
408
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 13: User-Defined Character Sets
Directives
underscore, a number not relevant to CLIv2, the encoding character (A, E, I, R, S, T, or U),
and an optional character not relevant to CLIv2. Each suffix corresponds to an ENCODING
operand value:
•
E - EDBDIC
•
I - IBMSOSI
•
A - ASCII
•
R - BIGFIVE
•
S - SJIS
•
T - EUC-CN or EUC-KR
•
U - EUC-JP
ENCODING optionally identifies the encoding scheme for the character set. If omitted, the
character set must contain a standard suffix that indicates the encoding. If such a suffix exists,
then the encoding cannot be overridden using this operand. The following character sets are
available in CLIv2.
ENCODING
Meaning
Characteristics
EBCDIC
Extended Binary-CodedDecimal Interchange Code
• Single-byte (EBCDIC) codepoints:
X'00' through X'FF'
IBMOSI
IBM Shift-out/Shift-in
• Single-byte (EBCDIC) codepoints:
X'00' through X'FF'
• Double-byte (EBDCIC) codepoints:
Shift-out (X'0E') through Shift-in (X'0E')
ASCII
American Standard Code for
Information Interchange
• Single-byte (ASCII) codepoints:
X'00' through X'FF'
BIGFIVE
Big Five Plus
• Single-byte (ASCII) codepoints:
X'00' through X'80', and X'FF'
• Double-byte (ASCII) codepoints:
X'81' through X'FE'
EUC-CN
Extended Unix Code - China
• Single-byte (ASCII) codepoints:
X'00' through X'7F'
• Double-byte (ASCII) codepoints:
X'80' through X'FF'
EUC-JP
Extended Unix Code - Japan
• Single-byte (ASCII) codepoints:
X'00' through X'8D'
X'90' through X'FF'
• Double-byte (ASCII) codepoints:
Single-shift1 (X'8E')
• Triple-byte (ASCII) codepoints:
Single-shift2 (X'8F)'
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
409
Chapter 13: User-Defined Character Sets
Directives
ENCODING
Meaning
Characteristics
EUC-KR
Extended Unix Code - Korea
• Single-byte (ASCII) codepoints:
X'00' through X'7F'
• Double-byte (ASCII) codepoints:
X'80' through X'FF'
SJIS
Shift-JIS (Japanese Industrial
Standard)
• Single-byte (ASCII) codepoints:
X'00' through X'80'
X'A0' through X'DF'
X'FD' through X'FF'
• Double-byte (ASCII) codepoints:
X'81' through X'9F'
X'E0' through X'FC'
UHC
Unified Hangul Code
• Single-byte (ASCII) codepoints:
X'00' through X'80', and X'FF'
• Double-byte (ASCII) codepoints:
X'81' through X'FE'
UTF8
UCS (Universal Character Set)
Transformation Format 8-bit
• Single-byte (Unicode) codepoints:
X'00' through X'7F'
• Double-byte (Unicode) codepoints:
X'C0' through X'DF'
• (Most) triple-byte (Unicode) codepoints:
X'E0' through X'FE'
Most four-byte codepoints (X'F0' through X'F4')
are not supported by Teradata Database.
UTF16
UCS (Universal Character Set)
Transformation Format- 16-bit
• Single-byte (Unicode) codepoints:
X'0000' through X'D7FF'
X'E000' through X'FFFF'
Surrogates (four-byte codepoints that begin or
end with the two-byte codepoints X'D800'
through X'DBFF') are not supported by Teradata
Database.
While all codepoints are reflected to and from Teradata Database, for character sets that allow
mixtures of single and multi-byte characters, only the single-byte characters are meaningful to
CLIv2.
Example
Begin definition for IBM Code Page 833, the single-byte component for IBM CCSID 933.
CHARSET NAME KOREAN_EBCDIC933 ENCODING IBMSOSI
410
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 13: User-Defined Character Sets
Directives
END
The END directive ends processing of records in the file.
Syntax
END
2417A012
Usage
Any remaining records in the file are not read.
Example
END
UNICODE
The UNICODE directive defines all single-byte codepoints in the character set. The relevant
syntactic characters in the character set that must be defined are those that have the Unicode
codepoints of 0020 (Space), 0022 (Quotation Mark), 0027 (Apostrophe), and 002F (Slash),
and 001A (the Substitute control character). In addition, all characters that are valid in a TDP
identifier must be defined.
Syntax
UNICODE
UNI
2417A013
Usage
The actual information is contained on statements that immediately follow the UNICODE
directive. Each such statement has the following syntax:
target_codepoint1<-target_codepoint2>: data_codepoint ...
target_codepoint1 specifies the first character in the user-defined character set that is defined
on this statement, target_codepoint2 optionally specifies the last character defined on this
statement, and data_codepoint defines the equivalent character in Unicode.
A codepoint is the hexadecimal representation of a character. The number of characters
needed to specify a target codepoint is dependent on the encoding scheme for the character
set. For the characters of interest to CLIv2, the length is always two except for UTF16
encoding, for which the length is four. The length of a data codepoint is always four.
If the second target codepoint is specified, then one data codepoint is required for each
character in the range between the two target codepoints. If the second target codepoint is
omitted, then any number of data codepoints may be specified, each associated with
codepoint one greater than the previous.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
411
Chapter 13: User-Defined Character Sets
Directives
All statements after the UNICODE directive that contain a colon are associated with the
UNICODE directive. Lack of a colon indicates that the statement is a new directive and ends
that UNICODE directive.
The order of data codepoints among different statements is not significant.
The UNICODE directive may be specified only once for each character set.
If the same character is defined more than once for a character set, the last value is used.
Example
Define the Unicode equivalents for IBM Code Page 833, the single-byte component for IBM
CCSID 933.
UNICODE
40-47: 0020
48-4F: 11AD
50-57: 0026
58-5F: 11B4
60-67: 002D
68-6F: 110A
70-77: 005B
78-7F: 1112
80-87: 005D
88-8F: 0068
90-97: 001A
98-9F: 0071
A0-A7: 00AF
A8-AF: 0079
B0-B7: 005E
B8-BF: 001A
C0-C7: 007B
C8-CF: 0048
D0-D7: 007D
D8-DF: 0051
E0-E7: 20A9
E8-EF: 0059
F0-F7: 0030
F8-FF: 0038
412
001A
1103
001A
11B5
002F
110B
001A
0060
0061
0069
006A
0072
007E
007A
001A
001A
0041
0049
004A
0052
001A
005A
0031
0039
115F
00A2
1104
0021
11B6
00A6
110C
003A
0062
1161
006B
1167
0073
116D
005C
1173
0042
001A
004B
001A
0053
001A
0032
001A
1100
002E
1105
0024
1106
002C
110D
0023
0063
1162
006C
1168
0074
116E
001A
1174
0043
001A
004C
001A
0054
001A
0033
001A
1101
003C
11B0
002A
1107
0025
110E
0040
0064
1163
006D
1169
0075
116F
001A
1175
0044
001A
004D
001A
0055
001A
0034
001A
1115
0028
11B1
0029
1108
005F
110F
0027
0065
1164
006E
116A
0076
1170
001A
001A
0045
001A
004E
001A
0056
001A
0035
001A
1102
002B
11B2
003B
1121
003E
1110
003D
0066
1165
006F
116B
0077
1171
001A
001A
0046
001A
004F
001A
0057
001A
0036
001A
11AC
007C
11B3
00AC
1109
003F
1111
0022
0067
1166
0070
116C
0078
1172
001A
001A
0047
001A
0050
001A
0058
001A
0037
001A
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
CHAPTER 14
Message Definitions
This chapter describes how to create Message Definitions in the following topics:
•
Introduction
•
Suffixes
•
Comment Formatting
•
Keywords
Introduction
The Message Definitions file for United States English is named TRD0LENU; it is provided on
a release tape. The Assembler file for TRD0LENU is on the z/OS release tape as member
CL2ASSEM. No action is required to use this file for messages in United States English. The
file is provided as the basis for creating message definitions in other languages.
Message definitions are created though the use of Assembler macros that are assembled and
link-edited (or bound) to produce a load module. Each load module contains all the CLIv2
messages for one language for a country. The distributed TRD0LENU also contains a second
item to identify the current CLIv2 release.
This information is used by the DBCHQE Request-message-release query. While not
required, this information can also be included in a customized message module during
linkage editor or binder processing by including the distributed TRD0LENU module after the
customized version (since all message table Control Sections are named TRD0L, the
distributed one will be ignored since the customized one was first, but the other Control
Section, named TRD2XRLS, does not exist in the customized version so will be included). But
if included, it must not be first in the module: TRD0L, the Control Section name for the
message table itself, must always be first, otherwise CLIv2 will abnormally terminate when
attempting to construct a message.
Suffixes
The names of all CLIv2 message modules begin with the characters TRD0L, and are suffixed
with three characters that indicate the language of the messages in that module. These
characters are the IBM national language identifiers defined in the publication IBM Standard
Packaging Rules for MVS-based Products.
The module suffixes for each defined language are as follows:
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
413
Chapter 14: Message Definitions
Suffixes
Table 61: Language Module Suffixes
414
Language
Suffix
Arabic
ARA
Danish
DAN
German (Germany)
DEU
German (Switzerland)
DES
Greek
ELL
English (United States)
ENU
English (United Kingdom)
ENG
Spanish
ESP
Finnish
FIN
French (France)
FRA
French (Belgium)
FRB
French (Canada)
FRC
French (Switzerland)
FRS
Hebrew
HEB
Icelandic
ISL
Italian (Italy)
ITA
Italian (Switzerland)
ITS
Japanese
JPN
Korean
KOR
Dutch (Netherlands)
NLD
Dutch (Belgium)
NLB
Norwegian
NOR
Portuguese (Portugal)
PTG
Portuguese (Brazil)
PTB
Romansh/Grishun
RMS
Russian
RUS
Swedish
SVE
Thai
THA
Turkish
TRK
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 14: Message Definitions
Comment Formatting
Table 61: Language Module Suffixes (continued)
Language
Suffix
Chinese (China)
CHS
Chinese (Taiwan)
CHT
Comment Formatting
TRD0LENU contains the macros used to define the messages, and the comments that are
used by Teradata to produce the message documentation. The comments begin with the
characters "*." (for message definitions in other languages the lines beginning with the *.
characters serve no purpose and may be removed). The TRDXXMHD and TRDXXMSG
macros are used to define the messages. TRDXXMHD appears only once as the start of the
file, before any TRDXMGEN macros. It generates a header that describes the content of the
file. The relevant syntax is:
TRDXXMHD CLI,LANG=xx[,COUNTRY=(yy<,OPTIONAL>)]
where:
Syntax Element
Definition.
CLI
Required start of the message prefix.
xx
Two-character Language Id (in uppercase EBCDIC)
yy
Optional two-character Country Id (in uppercase EBCDIC).
OPTIONAL
Optional second COUNTRY value if the Country Id is the
default country for this language.For example, the distributed
TRD0LENU specifies LANG=EN,
COUNTRY=(US,OPTIONAL), thus indicating that the United
States is the default country for English.
An application that requests either Language Id of EN alone, or
both a Language Id of EN and a Country Id of US can use
TRD0LENU.
Keywords
To ensure portability of applications using Language Ids, the following are the recommended
LANG and COUNTRY keywords:
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
415
Chapter 14: Message Definitions
Keywords
Table 62: Language and Country Keywords
416
Language
Keywords
Arabic
LANG=AR
Danish
LANG=DA,COUNTRY=(DK,OPTIONAL)
German (Germany)
LANG=DE,COUNTRY=(DE,OPTIONAL)
German (Switzerland)
LANG=DE,COUNTRY=CH
Greek
LANG=EL,COUNTRY=(GR,OPTIONAL)
English (United States)
LANG=EN,COUNTRY=(US,OPTIONAL)
English (United Kingdom)
LANG=EN,COUNTRY=GB
Spanish
LANG=ES,COUNTRY=(ES,OPTIONAL)
Finnish
LANG=FI,COUNTRY=(FI,OPTIONAL)
French (France)
LANG=FR,COUNTRY=(FR,OPTIONAL)
French (Belgium)
LANG=FR,COUNTRY=BE
French (Canada)
LANG=FR,COUNTRY=CA
French (Switzerland)
LANG=FR,COUNTRY=CH
Hebrew
LANG=IW,COUNTRY=(IL,OPTIONAL)
Icelandic
LANG=IS,COUNTRY=(IS,OPTIONAL)
Italian (Italy)
LANG=IT,COUNTRY=(IT,OPTIONAL)
Italian (Switzerland)
LANG=IT,COUNTRY=CH
Japanese
LANG=JA,COUNTRY=(JP,OPTIONAL)
Korean
LANG=KO,COUNTRY=(KR,OPTIONAL)
Dutch (Netherlands)
LANG=NL,COUNTRY=(NL,OPTIONAL)
Dutch (Belgium)
LANG=NL,BELGIUM=BE
Norwegian
LANG=NO,COUNTRY=(NO,OPTIONAL)
Portuguese (Portugal)
LANG=PT,COUNTRY=(PT,OPTIONAL)
Portuguese (Brazil)
LANG=PT,COUNTRY=BR
Romansh/Grishun
LANG=RM,COUNTRY=(CH,OPTIONAL)
Russian
LANG=RU,COUNTRY=(RU,OPTIONAL)
Swedish
LANG=SV,COUNTRY=(SE,OPTIONAL)
Thai
LANG=TH,COUNTRY=(TH,OPTIONAL)
Turkish
LANG=TR,COUNTRY=(TR,OPTIONAL)
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 14: Message Definitions
Keywords
Table 62: Language and Country Keywords (continued)
Language
Keywords
Chinese (China)
LANG=ZH,COUNTRY=(CN,OPTIONAL)
Chinese (Taiwan)
LANG=ZH,COUNTRY=TW
TRDXXMSG appears once for each message; it defines the message number and message text.
The relevant syntax is:
TRDXXMSG number,'text'
where number is the numeric message number, and text is the actual message text, enclosed in
apostrophes.
For use with CICS, each message definition module must be defined in the PPT or CSD, as
appropriate. The TRD0LENU entries in the DFHPPTT4 and DFHCSDTD samples serve as a
guides for the proper specification.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
417
Chapter 14: Message Definitions
Keywords
418
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
CHAPTER 15
Parcels for Basic Applications
This chapter describes parcels used by basic applications:
•
Parcel Definition
•
Parcel Types
•
Response Parcels: Overview
•
Parcel Descriptions
•
Individual parcels used by basic applications in alphabetical order
For information about the CLIv2 parcels used with Performance Monitor, see Performance
Management.
Parcel Definition
A parcel is a discrete logical unit of information consisting of two parts:
•
The parcel header that contains a flavor field and a parcel body length
•
The parcel body that contains any data associated with the parcel
The parcel flavors and content of the body are symbolically defined in the TRDSPB file.
Parcel headers are not of concern to basic applications. CLIv2 constructs parcel headers as
appropriate for requests and removes parcel headers for responses. For responses, the parcel
flavor is returned in the Fetch-parcel-flavor DBCAREA field.
Parcel Flavors
Each parcel type has a unique number and a unique name corresponding to it. The following
table lists the basic parcels by flavor number:
Table 63: Parcel flavors
Flavor
Parcel Name
Flavor
Parcel Name
8
Success
9
Failure
10
Record
11
EndStatement
12
EndRequest
17
OK
18
Field
19
NullField
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
419
Chapter 15: Parcels for Basic Applications
Parcel Types
Table 63: Parcel flavors (continued)
Flavor
Parcel Name
Flavor
Parcel Name
20
TitleStart
21
TitleEnd
22
FormatStart
23
FormatEnd
24
SizeStart
25
SizeEnd
26
Size
27
RecStart
28
RecEnd
33
With
34
Position
35
EndWith
46
PosStart
47
PosEnd
49
Error
71
DataInfo
86
PrepInfo
122
Flagger
125
PrepInfoX
144
MultipartRecord
145
EndMultipartRecord
146
DataInfoX
150
ElicitData
151
ElicitFile
152
ElicitDataReceived
164
ErrorInformation
169
StatementInformation
170
StatementInformationEnd
171
ResultSummary
172
ResultSet
178
ElicitName
When Parcel-mode applications fetch the results of a request, the parcel flavor is returned in
the DBCAREA DBCOPFLV field, the length of the body of the parcel in the DBFOFDL field,
and the address of the parcel body in the DBFXFDP field. Thus, such applications do not
concern themselves with the actual parcel header, only the parcel body. While the length of
the original parcel included the length of the header, the length returned in the DBCAREA
does not.
Parcel Body
The parcel body consists of zero or more fields. The number of fields, their names, contents,
and lengths depends on the parcel flavor.
Parcel Types
There are two parcel types:
420
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 15: Parcels for Basic Applications
Parcel Types
Parcel type...
Is generated for...
Request
requests sent to the Teradata Database
Response
responses sent from the Teradata Database to a client
Request Parcels: Overview
The basic request parcels are constructed by CLIv2 on behalf of the application; therefore,
they are not normally visible to the application. Request parcels may be constructed by
applications that use a DBCAREA Request-mode of B (commonly referred to as Buffer-mode
applications) or by applications that use the DBCAREA Initiate-request extension
(DBCAIRX). For such applications, see Chapter 16: “Parcels for Advanced Applications” for
details of the various Request Parcels.
Response Parcels: Overview
Response parcels are generated by the Teradata Database in response to an application's
request. Not every parcel appears in every response.
The following table lists the response parcels by flavor, name, use, length, and the names of
fields contained in the parcel body.
Table 64: Response Parcel Flavors, Names, And Uses
Flavor
Parcel Name
Use
8
Success
Indicates that the specified Teradata SQL
statement completed successfully in other than
Field Response-mode when using Original
Statement-status.
9
Failure
Indicates that the specified statement has failed and
the entire transaction was rolled back.
10
Record
Returns one row of selected results.
(Record Mode)
10
Record
Returns one row of selected results.
(Indicator Mode)
11
EndStatement
Delimits the end of the results from the specified
Teradata SQL statement.
12
EndRequest
Delimits the end of a Teradata SQL response to a
Teradata SQL request.
17
OK
Indicates that the specified Teradata SQL
statement completed successfully (Field Mode) in
Field Response-mode when using Original
Statement-status.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
421
Chapter 15: Parcels for Basic Applications
Parcel Types
Table 64: Response Parcel Flavors, Names, And Uses (continued)
422
Flavor
Parcel Name
Use
18
Field
Contains returned information (data value, title,
format, or echo).
19
NullField
Returns a null data value for a field.
20
TitleStart
Delimits the start of a set of Title parcels.
21
TitleEnd
Delimits the end of a set of Title parcels.
22
FormatStart
Delimits the start of a set of format-containing
Field parcels.
23
FormatEnd
Delimits the end of a set of format-containing Field
parcels.
24
SizeStart
Delimits the start of a set of Size parcels.
25
SizeEnd
Delimits the end of a set of Size parcels.
26
Size
Specifies the width of a column of selected results.
27
RecStart
Delimits the start of a set of data-value-containing
Field and Null-Field parcels or a set of echoed
string- containing Field parcels.
28
RecEnd
Delimits the end of a set of data-value-containing
Field and Null-Field parcels or a set of echoed
string-containing Field parcels.
33
With
Delimits the start of a set of parcels for the specified
WITH clause, when Return-statement-info 'Y' was
not specified.
34
Position
Specifies the column number being summarized,
when Return-statement-info 'Y' was not specified.
35
EndWith
Delimits the end of a set of parcels for the specified
WITH clause, when Return-statement-info 'Y' was
not specified.
46
PosStart
Delimits the start of a set of Position parcels, when
Return-statement-info 'Y' was not specified.
47
PosEnd
Delimits the end of a set of Position parcels, when
Return-statement-info 'Y' was not specified.
49
Error
Indicates that the specified statement has an error
not serious enough to cause rollback.
71
DataInfo
Returns a description of the following Indicator
Mode Record parcels, when Return-statement-info
'Y' was not specified.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 15: Parcels for Basic Applications
Parcel Types
Table 64: Response Parcel Flavors, Names, And Uses (continued)
Flavor
Parcel Name
Use
86
PrepInfo
Returns column information from the Teradata
Database when a Teradata SQL statement has been
sent with a Request Processing Option of Prepare
and a Response Mode of Indicator, when
Return-statement-info 'Y' was not specified.
122
Flagger
Returns language non-conformances.
125
PrepInfoX
Returns column information from the Teradata
Database when a Teradata SQL statement has been
sent with a Request Processing Option of Prepare
and a Response Mode of MultiportIndicator, when
Return-statement-info 'Y' was not specified.
144
MultipartRecord
For MultipartIndicator mode responses, returns
one row or part of one row of selected results.
145
EndMultipartRecord
For MultipartIndicator mode responses, delimits
one row or selected results.
146
DataInfoX
For MultipartIndicator mode responses, describes
the data contained in subsequent MultipartRecord
parcels, when Return-statement-info 'Y' was not
specified.
150
ElicitData
For MultipartIndicator mode responses, elicits a
deferred MultipartIndicator response mode large
object.
151
ElicitFile
For MultipartIndicator mode responses, elicits a
User Defined Function.
152
ElicitDataReceived
For MultipartIndicator mode responses, indicates
that an elicited data or file was successfully
received.
164
ErrorInformation
After an Error parcel (flavor 49), provides
additional information about the error
169
StatementInformation
Returns a description of the data, when
Return-statement-info 'Y' was specified.
170
StatementInformationEnd
Delimits related StatementInformation parcels.
171
ResultSummary
Indicates that the specified Teradata SQL
statement completed successfully when using
Enhanced Statement-status.
172
ResultSet
Introduce parcels returned from a CALLed stored
procedure.
178
ElicitName
For MultipartIndicator mode responses, elicits a
deferred large object.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
423
Chapter 15: Parcels for Basic Applications
Common Parcel Fields
Common Parcel Fields
There are two fields that occur in multiple parcels and have a large number of possible values:
Data Type and Activity Type.
Data Type
The Data Type field specifies the type of data contained in a database column.
Table 65: Data Type Values
424
Name
Type if
non-nullable
Type if
Nullable
Type if IN
parameter
Type if INOUT
parameter
Type if OUT
parameter
BLOB
400
401
900
901
902
BLOB AS DEFERRED
404
405
904
905
906
BLOB AS LOCATOR
408
409
908
909
910
CLOB
416
417
917
916
918
CLOB AS DEFERRED
420
421
920
921
922
CLOB AS LOCATOR
424
425
924
925
926
VARCHAR
448
449
948
949
950
CHAR
452
453
952
953
954
LONGVARCHAR
456
457
956
957
958
VARGRAPHIC
464
465
964
965
966
GRAPHIC
468
469
968
969
970
LONGVARGRAPHIC
472
473
972
973
974
FLOAT
480
481
980
981
982
DECIMAL
484
485
984
985
986
INTEGER
496
497
996
997
998
SMALLINT
500
501
1000
1001
1002
BIGINT
600
601
1100
1101
1102
VARBYTE
688
689
1188
1189
1190
BYTE
692
693
1192
1193
1194
LONGVARBYTE
697
696
1197
1196
1198
DATE with DBCAREA
Date-format 'A'
748
749
1248
1249
1250
DATE with DBCAREA
Date-format 'T'
752
753
1252
1253
1254
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 15: Parcels for Basic Applications
Common Parcel Fields
Table 65: Data Type Values (continued)
Name
Type if
non-nullable
Type if
Nullable
Type if IN
parameter
Type if INOUT
parameter
Type if OUT
parameter
BYTEINT
756
757
1256
1257
1258
PERIOD (DATE)
832
833
1332
1333
1332
PERIOD (TIME)
836
837
1336
1337
1338
PERIOD (TIME WITH
TIME ZONE
840
841
1340
1341
1342
PERIOD
(TIMESTAMP
844
845
1344
1345
1346
PERIOD
(TIMESTAMP WITH
TIME ZONE)
848
849
1348
1349
1350
The several values for each type are algorithmically related to the non-nullable value: the
nullable value is one greater; the IN parameter value is 500 greater; the INPUT parameter
value is 501 greater; and the OUT parameter value is 502 greater. Note that the three
parameter values do not differentiate non-nullable from nullable.
Non-nullable refers to columns defined NOT NULLS.
IN, INOUT, and OUT refer to attributes for parameters on an SQL CALL statement.
The temporal data types (TIME, TIMESTAMP, TIME WITH TIME ZONE, TIMESTAMP
WITH TIME ZONE, INTERVAL YEAR, INTERVAL YEAR TO MONTH, INTERVAL
MONTH, INTERVAL DAY, INTERVAL DAY TO HOUR, INTERVAL DAY TO MINUTE,
INTERVAL DAY TO SECOND, INTERVAL HOUR, INTERVAL HOUR TO MINUTE,
INTERVAL HOUR TO SECOND, INTERVAL MINUTE, INTERVAL MINUTE TO
SECOND, INTERVAL SECOND) are given for the “StatementInformation Responses” on
page 459. When used elsewhere, these types are all indicated as the CHAR data type.
Activity Type
The Activity Type field .indicates the type of processing performed for the request.
Table 66: Activity Codes
Value
Statement
Value
Statement
Value
Statement
0
Not available
1
SQL SELECT
2
SQL INSERT
3
SQL UPDATE
4
UPDATE...
RETRIEVING
5
SQL DELETE
6
SQL CREATE TABLE
7
SQL ALTER TABLE
8
SQL CREATE VIEW
9
SQL CREATE
MACRO
10
SQL DROP TABLE
11
SQL DROP VIEW
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
425
Chapter 15: Parcels for Basic Applications
Common Parcel Fields
Table 66: Activity Codes (continued)
426
Value
Statement
Value
Statement
Value
Statement
12
SQL DROP MACRO
13
SQL DROP INDEX
14
SQL RENAME
TABLE
15
SQL RENAME VIEW
16
SQL RENAME
MACRO
17
SQL CREATE INDEX
18
SQL CREATE
DATABASE
19
SQL CREATE USER
20
SQL GRANT
21
SQL REVOKE
22
Give
23
SQL DROP
DATABASE
24
SQL MODIFY
DATABASE
25
SQL DATABASE
26
SQL BEGIN
TRANSACTION
27
SQL END
TRANSACTION
28
SQL ABORT
29
Null
30
SQL EXECUTE
31
SQL COMMENT SET
32
SQL COMMENT
33
SQL ECHO
34
Replace View
35
Replace Macro
36
SQL CHECKPOINT
37
Delete Journal
38
SQL ROLLBACK
39
Release Lock
40
HUT Config
41
VerifyCheckpoint
42
Dump Journal
43
Dump
44
Restore
45
RollForward
46
SQL Delete Database
47
Internal use only
(for crash dumps)
48
Internal use only
(for crash dumps)
49
SQL Show
50
SQL Help
51
Begin Loading
52
Check Point Load
53
End Loading
54
Insert
56
Revoke Logon
57
Begin Access Log
58
End Access Log
59
Collect Statistics
60
Drop Statistics
61
Session Set
62
Begin Multiload
63
Multiload
64
Execute Multiload
65
End Multiload
66
Release Multiload
67
Multiload Delete
68
Multiload Insert
69
Multiload Update
70
Begin Delete
Multiload
71
Data Status
72
Reserved for B1
security
73
Reserved for B1
security
74
Begin Export
75
End Export
76
2PC Vote Request
77
2PC Vote and
Terminate Request
78
2PC Commit
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 15: Parcels for Basic Applications
Common Parcel Fields
Table 66: Activity Codes (continued)
Value
Statement
Value
Statement
Value
Statement
79
2PC Abort
80
2PC Yes/Done
Response to Vote
Request
81
Obsolete
82
Obsolete
83
Set Session Rate
84
Monitor Session
85
Identify
86
Abort Session
87
Set Resource Rate
88
Obsolete
89
Revalidate RI
references
90
ANSI SQL COMMIT
WORK
91
Monitor Virtual
Config
92
Monitor Physical
Config
93
Monitor Virtual
Summary
94
Monitor Physical
Summary
95
Monitor Virtual
Resource
96
Monitor Physical
Resource
97
SQL CREATE
TRIGGER
98
SQL DROP TRIGGER
99
SQL RENAME
TRIGGER
100
Replace Trigger
101
SQL ALTER
TRIGGER
103
Drop Procedure
104
Create Procedure
105
Call
106
SQL RENAME
PROCEDURE
107
Replace Procedure
109
Locking logger
110
Monitor Session
111
Monitor Version
112
Begin Database Query
Log
113
End Database Query
Log
114
SQL Create Role
115
SQL DROP ROLE
116
Grant Role
117
Revoke Role
118
SQL Create Profile
119
SQL Modify Profile
120
SQL Drop Profile
121
SQL SET ROLE
122
Create UDF
123
Replace UDF
124
Drop UDF
125
Alter UDF
126
Rename UDF
127
SQL MERGE INTO,
updates, no inserts
128
SQL MERGE INTO,
all inserts, no updates
129
SQL MERGE INTO,
updates and inserts
130
SQL ALTER
PROCEDURE
131
PM/API request
TDWM ENABLE
132
PM/API request
TDWM STATISTICS
133
TDWM Perf Groups
134
Create UDT
135
Drop UDT
136
Alter UDT
138
SQL CREATE
METHOD
139
Alter Method
140
Replace Method
141
Create Cast
142
Replace Cast
143
Drop Cast
144
SQL CREATE
ORDERING
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
427
Chapter 15: Parcels for Basic Applications
Parcel Descriptions
Table 66: Activity Codes (continued)
Value
Statement
Value
Statement
Value
Statement
145
Replace Ordering
146
Drop Ordering
147
SQL CREATE
TRANSFORM
148
Replace Transform
149
SQL DROP
TRANSFORM
196
SQL Select for
FastExport without
Spooling
Parcel Descriptions
The following alphabetized sections describe parcels generated by basic applications and the
Teradata Database, when Return-statement-info 'Y' was not specified.
428
• DataInfo
• DataInfoX
• ElicitData
• ElicitDataReceived
• ElicitFile
• ElicitName
• EndMultipartRecord
• EndRequest
• EndStatement
• EndWith
• Error
• Failure
• Field
• Flagger
• FormatEnd
• FormatStart
• MultipartRecord
• NullField
• OK
• PosEnd
• Position
• PosStart
• PrepInfo
• PrepInfoX
• RecEnd
• Record
• Record (In Record Mode)
• Record (In Indicator Mode)
• RecStart
• ResultSet
• ResultSummary
• Size
• SizeEnd
• SizeStart
• StatementInformation Responses
• StatementInformationEnd Responses
• Success
• TitleEnd
• TitleStart
• With
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 15: Parcels for Basic Applications
Parcel Descriptions
DataInfo
Purpose
Returns a description of the items within the Data Field of the corresponding Indicator Mode
Record parcels.
Usage Notes
DataInfo parcel is not returned if the statement was an ECHO statement. This parcel is
generated by the Teradata Database.
Parcel Data
Flavor
71
Parcel Body
Length
6 to
maximum
body size
Parcel Body Fields
2 bytes
FieldCount:
Pair 1:
Data Type:
2 bytes
Length:
2 bytes
Data Type:
2 bytes
Length:
2 bytes
Data Type:
2 bytes
Length:
2 bytes
.
.
.
Pair i:
.
.
.
Pair n:
Field Notes
The following notes apply to the Fields for the DataInfo parcel.
•
The FieldCount, n, is the number of items within the Data Field in the corresponding
Indicator Mode Record parcels. It also is the number of data type and length pairs in this
DataInfo parcel.
•
The Pair fields contains a description of the data type and length of the corresponding data
item of the record parcel. That is, the ith pair of data type and length values in the
DataInfo parcel corresponds to the ith data item in the Data Field of the Indicator Mode
Record parcel. See Table 65 on page 424 for the possible data types.
•
If the data type of the ith data item is not decimal, then the length (maximum length
for VARBYTE and VARCHAR) of the ith data item in the Indicator Mode Record
parcel is represented in the DataInfo parcel as a 16-bit signed binary.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
429
Chapter 15: Parcels for Basic Applications
Parcel Descriptions
•
If the data type of the ith data item is decimal, then the total number of digits in the ith
data item in the Indicator Mode Record parcel is represented in the DataInfo parcel in
the first byte of the parcel body length as an 8-bit signed binary, and the number of
fractional digits is represented in the second byte of the parcel body length as an 8-bit
signed binary.
DataInfoX
Purpose
For MultipartIndicator mode responses, describes the data contained in subsequent
MultipartRecord parcels.
Usage Notes
DataInfoX is not returned if the statement was ECHO.
Parcel Data
The following table lists field information for DataInfoX.
Flavor
146
Parcel Body
Length
6 to maximum
body size
Parcel Body Fields
2 bytes
FieldCount:
Pair 1:
Data Type:
2 bytes
Length:
8 bytes
Data Type:
2 bytes
Length:
8 bytes
Data Type:
2 bytes
Length:
8 bytes
.
.
.
Pair i:
.
.
.
Pair n:
Field Notes
The following notes apply to the Fields for the DataInfoX parcel.
430
•
The FieldCount, n, is the number of items within the Data Field in the corresponding
MultipartRecord parcels. It also is the number of data type and length pairs in this
DataInfoX parcel.
•
The Pair fields contains a description of the data type and length of the corresponding data
item of the multipartrecord parcel. That is, the ith pair of data type and length values in
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 15: Parcels for Basic Applications
Parcel Descriptions
the DataInfoX parcel corresponds to the ith data item in the Data Field of the
Multipartrecord parcel. See Table 65 on page 424 for the possible data types.
•
If the data type of the ith data item is not decimal, then the length (maximum length
for VARBYTE and VARCHAR) of the ith data item in the Multipartrecord parcel is
represented in the DataInfoX parcel as a 64bit unsigned binary.
•
If the data type of the ith data item is decimal, then the total number of digits in the ith
data item in the Multipartrecord parcel is represented in the DataInfoX parcel in the
first 4 bytes of the parcel body length as a signed binary, and the number of fractional
digits is represented in the second 4 bytes of the parcel body length as a signed binary.
ElicitData
Purpose
For MultipartIndicator mode responses, elicits a deferred MultipartIndicator response mode
large object.
Parcel Data
Flavor
Parcel Body
Length
Parcel Body Fields
150
4
Token: 4 byte
Token is a number indicating the Large Object being elicited. The first Large Object
referenced by the SQL request will have a token of 1, with subsequent Large Objects tokens
each being incremented by one.
ElicitDataReceived
Purpose
For MultipartIndicator mode responses, indicates that an elicited data or file was successfully
received.
Parcel Data
Flavor
Parcel Body
Length
Parcel Body Fields
152
0
None
ElicitFile
Purpose
For MultipartIndicator mode responses, elicits a User Defined Function.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
431
Chapter 15: Parcels for Basic Applications
Parcel Descriptions
Parcel Data
The following table lists field information for ElicitFile.
Flavor
151
Parcel Body
Length
6 to maximum
body size
Parcel Body Fields
SourceLanguage: 1 byte
FileType: 1-byte unsigned integer
FileSupplied: 1 byte
Pad Byte: 1 byte
FilenameLength: 2-byte unsigned integer
Filename: variable number of characters
Usage Notes
SourceLanguage identifies the language in which the User Defined Function is programmed,
as one of the following:
0 = Not supplied
1=C
2 = C++
3 = Java
FileType identifies the type of file, chosen as one of the following:
0 = Not supplied
1 = A source file
2 = An included file
3 = An object file
FileSupplied identifies what name was supplied for the file, chosen as one of the following
•
0 = Name without location
•
1 = Name and location
•
A pad byte (a single, unused byte)
FilenameLength specifies the length, in bytes, of the filename.
Filename specifies the name of the file in characters of the session character set.
ElicitName
Returned in a MultipartIndicator mode response to a request that contains a USING row
descriptor for a large object (LOB) containing AS DEFERRED BY NAME.
The following table lists field information for ElicitName.
432
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 15: Parcels for Basic Applications
Parcel Descriptions
TRDSPBEN
Flavor
Mnemonic
178
TRDSPFEN
Field
Length
Value
PBENNLEN
2-byte unsigned integer
Length, in bytes, of the name
from the USING row
descriptor AS NAME
phrase.
The maximum length of a
name may be obtained using
the DBCHQE SQL-limits
query.
PBENNAME
2-byte unsigned integer
Name from the USING row
descriptor AS NAME phrase
in characters from the
current session character set.
EndMultipartRecord
Purpose
For MultipartIndicator mode responses, delimits one row or selected results.
Usage Notes
The following table lists field information for EndMultipartRecord.
Flavor
Parcel Body
Length
Parcel Body Fields
145
0
None
EndRequest
Purpose
Delimits the end of a Teradata SQL response.
Usage Notes
This parcel is generated by the Teradata server.
Parcel Data
The following table lists field information for EndRequest.
Flavor
Parcel Body
Length
Parcel Body Fields
12
0
none
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
433
Chapter 15: Parcels for Basic Applications
Parcel Descriptions
EndStatement
Purpose
Delimits the end of the results of a Teradata SQL statement.
Usage Notes
This parcel is generated by the Teradata server.
Parcel Data
The following table lists field information for EndStatement.
Flavor
Parcel Body
Length
Parcel Body Fields
11
2
StatementNo: 2 byte unsigned integer
Field Notes
The following notes apply to the fields for EndRequest.
•
StatementNo is the number of the Teradata SQL statement for which this is the last parcel
in a response.
•
Teradata SQL statements in a multi-statement Teradata SQL request are numbered 1
through n.
EndWith
Purpose
Delimits the end of a sequence of parcels that provides descriptors for, or the results of, a
summary generated by a WITH clause.
Usage Notes
This parcel is generated by the Teradata server.
Parcel Data
The following table lists field information for EndWith.
Flavor
Parcel Body
Length
Parcel Body Fields
35
2
WithId: 2 byte unsigned integer
Field Notes
WithId is the summary number (1-n) for this End With clause.
434
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 15: Parcels for Basic Applications
Parcel Descriptions
Error
Purpose
Returned in response to a request that resulted in a non-database-related error.
Usage Notes
If the request is in a transaction, then the transaction is not aborted.
The invalid request can be corrected and resubmitted.
For example, the Error parcel might inform an application that the byte count in the Resp or
KeepResp parcel is too small to contain a parcel (error code 3116); in this case, the application
should reallocate the input (response) buffer, rebuild and resubmit the request.
This parcel is generated by the Teradata server.
Parcel Data
The following table lists field information for Error.
Flavor
Parcel Body
Length
Parcel Body Fields
49
8 to 263
StatementNo:
2 byte unsigned integer
Info:
2 byte unsigned integer
Code:
2 byte unsigned integer
Length:
2 byte unsigned integer
Msg:
1 to 255 bytes
Field Notes
Error Parcel field definitions are:
•
StatementNo is the number of the Teradata SQL statement in the Teradata SQL request
that failed.
•
Info is an integer value whose use depends upon the error code returned. For its contents,
look up the error code in the Messages manual.
•
Code is the error code specifying the type of error that occurred.
•
Length is the total number of bytes in the textual representation of the error code. If
Length = 0, no textual representation of the error is present.
Note: Msg is the error message in character format.
Failure
Purpose
Indicates that the response to a request was not successfully processed by the Teradata server.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
435
Chapter 15: Parcels for Basic Applications
Parcel Descriptions
Usage Notes
In contrast to the Error parcel, the Failure parcel indicates that the Teradata SQL response has
been discarded and the Teradata SQL request and transaction in which it was embedded, if
any, have been aborted and backed out of the data base.
When ANSI transaction semantics are in effect, a Failure response parcel rolls back only the
request causing the error unless that error threatens the integrity of the database, in which
case the entire transaction is rolled back.
This parcel is generated by the Teradata server.
Parcel Data
The following table lists field information for Error.
Flavor
Parcel Body
Length
Parcel Body Fields
9
8 to 263
StatementNo:
2 byte unsigned integer
Info:
2 byte unsigned integer
Code:
2 byte unsigned integer
Length:
2 byte unsigned integer
Msg:
1 to 255 bytes
Field Notes
Failure Parcel fields are defined as:
•
StatementNo is the number of the Teradata SQL statement in the Teradata SQL request
that failed.
•
Info is an integer value whose use depends upon the failure code returned. For its
contents, look up the error code in the Messages manual.
•
Code is the error code specifying the type of error that occurred.
•
Length is the total number of bytes in the textual representation of the Failure Code. If
Length = 0, no textual representation of the error is present.
•
Msg is the failure message in character format.
Field
Purpose
Contains information that is returned in Field Mode.
Usage Notes
The following usage notes apply to the Field parcel.
436
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 15: Parcels for Basic Applications
Parcel Descriptions
If Field is preceded by this parcel...
Then it contains...
RecStart
a data value of a column or it contains a string echoed
from the Teradata server
TitleStart
the title of one column.
FormatStart
the format of one column.
Parcel Data
This parcel is generated by the Teradata server.
Parcel Body Fields
Flavor
18
Parcel Body
Length
0 to
maximum
body size
If Field is preceded by this
parcel...
Then it contains...
RecStart
a data value of a column or it contains a
string echoed from the Teradata server
TitleStart
the title of one column.
FormatStart
the format of one column.
Field Notes
Data contains the value of a field in character format.
Flagger
Purpose
Returns to the application non-conformances in the SQL request.
Usage Notes
The standard for judging conformance is specified in the SessionOptions parcel.
This parcel is generated by the Teradata server.
Parcel Data
The following table lists field information for Flagger.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
437
Chapter 15: Parcels for Basic Applications
Parcel Descriptions
Flavor
122
Parcel Body
Length
6 to
maximum
body size
Parcel Body Fields
Location:
2 bytes
Reason:
2 bytes
MsgLength:
2 bytes
Message:
to maximum body size
Field Notes
The flags each consist of one or more conformance flags, each containing the following
information:
•
Location is a 2-byte field that specifies the character position of the nonconforming syntax
within the statement.
For a semantic nonconformance, the value is zero.
•
Reason is a 2-byte field that specifies the nature of the nonconformance.
•
MsgLength is a 2-byte field that specifies the length of the Message field.
•
Message is a variable parcel body length that contains the text of the message.
FormatEnd
Purpose
Delimits the end of a sequence of Field parcels that contain format descriptors for fields in a
Field Mode result.
Usage Notes
This parcel is generated by the Teradata server.
Parcel Data
The following information applies to the FormatEnd parcel.
Flavor
Parcel Body
Length
Parcel Body Fields
23
0
none
FormatStart
Purpose
Delimits the start of a sequence of Field parcels that contain format descriptors for fields in
Field Mode.
438
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 15: Parcels for Basic Applications
Parcel Descriptions
Usage Notes
This parcel is generated by the Teradata server.
Parcel Data
The following information applies to the FormatStart parcel.
Flavor
Parcel Body
Length
Parcel Body Fields
22
0
none
MultipartRecord
Purpose
For MultipartIndicator mode responses, returns one row or part of one row of selected
results. Null values are explicitly indicated.
Usage Notes
The MultipartRecord parcel returns one row of selected results. In Indicator Mode, null
values are explicitly identified.
In Indicator Mode, the parcel immediately before the first Record Mode MultipartRecord
parcel is a Success parcel; in Indicator Mode, the parcel immediately before the first Indicator
Mode MultipartRecord parcel is a DataInfoX parcel, which is preceded by the Success parcel.
Note that a Teradata SQL SHOW TABLE statement returns only one MultipartRecord parcel.
Within the MultipartRecord parcel, each line of a table is separated from the next by hex 0D
(decimal 13).
This parcel is generated by the Teradata server.
Parcel Data
The following information applies to the MultipartRecord parcel (in Indicator Mode).
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
439
Chapter 15: Parcels for Basic Applications
Parcel Descriptions
Parcel Body
Length
Flavor
144
1 to
maximum
body size
Parcel Body Fields
NullIndicators: (n+7)/8 bytes
where:
n = the number of items in the
Data Field, organized as:
bit 1, but 2, . . . , bit i,
. . . , but n, unused bits
Data: 1 to 32000 - ((n+7) / 8) bytes
organized as: item 1, item2, . . . , item i,
. . . , item n
Field Notes
The Data Field contains items with characteristics as follows:
•
The NullIndicators Field contains one bit for each item in the DataField, stored in the
minimum number of 8-bit bytes required to hold them, with the unused bits in the
rightmost byte set to zero.
Each bit is matched on a positional basis to an item in the Data Field. That is, the ith bit in
the NullIndicators Field corresponds to the ith item in the Data Field.
If a bit is...
Then the value of the corresponding data item is...
ON
null.
OFF
not null.
Whether the null indicator bit is ON or OFF, the length of the corresponding data item is
meaningful.
The Data Field contains a formatted record of data:
•
If the data item is to contain...
Then...
a variable length string
the length portion of the data item is set to the actual
length of the string which is zero if the data item
represents a null value.
an integer
the data item will occupy four bytes which is zeros if
the data item represents a null value.
The Data Field contains items with characteristics as follows:
•
440
The order of the items.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 15: Parcels for Basic Applications
Parcel Descriptions
Each expression in the SELECT statement generates one data item in the Indicator
Mode MultipartRecord parcel, in the order listed in the SELECT statement.
That is, the ith data item in the Indicator Mode MultipartRecord parcel contains the
result of the ith expression in the SELECT statement.
•
The data type of each item.
Each item in the Data Field of the Indicator Mode MultipartRecord parcel has the data
type which is specified in the corresponding data type code in the DataInfoX parcel
between the Success parcel and the first Indicator Mode MultipartRecord parcel.
That is, the ith data item in the Indicator Mode MultipartRecord parcel has the ith
data type coded in the DataInfoX parcel.
•
The length of each item.
Each item in the Data Field of the Indicator Mode MultipartRecord parcel has the
length which is specified in the corresponding length in the DataInfoX parcel between
the Success parcel and first Indicator Mode MultipartRecord parcel.
That is, the ith data item in the Indicator Mode MultipartRecord parcel has the ith
length in the DataInfoX parcel.
•
The format of each item.
The contents of each item are in client internal format, as determined by the data type.
See Table 65 on page 424.
For the form that a null value takes for each of these data types, see “Manipulating
Nulls” in SQL Fundamentals.
NullField
Purpose
Returns a field stored as null, in a Field Mode response.
Usage Notes
This parcel is generated by the Teradata server.
Parcel Data
The following information applies to the NullField parcel.
Flavor
Parcel Body
Length
Parcel Body Fields
19
0
none
OK
Purpose
First parcel returned in response to a successfully executed Field Mode Teradata SQL
statement when using Original Statement-status.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
441
Chapter 15: Parcels for Basic Applications
Parcel Descriptions
If the activity type is 33 (Echo), an echo sequence will follow.
Usage Notes
If the Warninglength is zero, there may be some slack bytes following the Warninglength. If
so, they are added into the parcel length total.
This parcel is generated by the Teradata Database.
Parcel Data
The following information applies to the OK parcel.
Flavor
Parcel Body
Length
Parcel Body Fields
17
14 to 269
StatementNo:
2 byte unsigned integer
FieldCount:
2 byte unsigned integer
ActivityCount:
4 byte unsigned integer
ActivityType:
2 byte unsigned integer
WarningCode:
2 byte unsigned integer
WarningLength:
2 byte unsigned integer
WarningMsg:
0 to 255 bytes
Field Notes
The following notes apply to OK fields.
•
StatementNo is the number of the Teradata SQL statement for which this is the first parcel
of a response.
•
FieldCount is the total number of fields returned in each record.
•
ActivityCount is the total number of records selected, inserted, updated, or deleted.
•
ActivityType is an encoded value representing the type of Teradata SQL statement that
was processed. See Table 66 on page 425 for the possible activity types
•
WarningCode is usually zero. If it is nonzero, it represents a comment on an operation
that was carried out. See the Messages manual for more information about any particular
code.
•
WarningLength is the length of the warning message. If WarningLength is zero, there is no
warning message.
•
WarningMsg is the text of the warning message.
PosEnd
Purpose
Delimits the end of a sequence of Position parcels that contain select-table
column-correspondence information on summary results.
442
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 15: Parcels for Basic Applications
Parcel Descriptions
Usage Notes
This parcel is generated by the Teradata server.
Parcel Data
The following information applies to the PosEnd parcel.
Flavor
Parcel Body
Length
Parcel Body Fields
47
0
none
Position
Purpose
Indicates the column number whose values are being summarized.
Usage Notes
The column number in the selected results corresponds to the expression number in the main
body of the Teradata SQL SELECT statement.
If ColumnNo = 0, then the expression in the WITH clause is not the same as any of the
expressions in the main body of the Teradata SQL SELECT statement.
This parcel is generated by the Teradata server.
Parcel Data
The following information applies to the Position parcel.
Flavor
Parcel Body
Length
Parcel Body Fields
34
2
ColumnNo: 2 byte unsigned integer
Field Notes
ColumnNo specifies the number of the column where a summary is to be displayed.
PosStart
Purpose
Delimits the start of a sequence of Position parcels that contain select-table
column-correspondence information on summary results.
Usage Notes
This parcel is generated by the Teradata server.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
443
Chapter 15: Parcels for Basic Applications
Parcel Descriptions
Parcel Data
The following information applies to the PosStart parcel.
Flavor
Parcel Body
Length
Parcel Body Fields
46
0
none
PrepInfo
Purpose
Returns a description of the return data specified by a request, when that request is sent to the
Teradata Database with a Request Processing Option of Prepare and a Response Mode of
Indicator.
The parcel also contains an estimate of the time it will take to execute the statement.
Usage Notes
If the PrepInfo parcel contains zeros, the statement was an ECHO statement. The PrepInfo
parcel is generated by the Teradata Database.
Parcel Data
The following information applies to the PrepInfo parcel.
Flavor
86
Parcel Body
Length
12 to
maximum
body size
Parcel Body Fields
CostEstimate:
8 byte floating
SummaryCount:
2 byte unsigned integer
The following occur once for the SELECTed columns, and
SummaryCount times for any WITH clauses.
ColumnCount:
2 byte unsigned integer
For each column, the following occur:
DataType:
2 byte unsigned integer
DataLen:
2 byte unsigned integer
ColumnName:
two byte unsigned integer plus the
number of bytes specified by that
integer
ColumnFormat:
ColumnTitle:
444
two byte unsigned integer plus the
number of bytes specified by that
integer
two byte unsigned integer plus the
number of bytes specified by that
integer
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 15: Parcels for Basic Applications
Parcel Descriptions
Field Notes
The following notes apply to PrepInfo fields.
•
CostEstimate returns a time estimate, in milliseconds, of how long it will take to execute a
request.
The CostEstimate field is set to zero if the estimated time is negligible.
•
SummaryCount specifies the number of WITH clauses in the request.
The SummaryCount field is set to zero if no summary data is returned, that is, if the
request is not a SELECT statement or if the request is a SELECT statement without any
WITH clauses.
•
ColumnCount specifies how many sets of column-descriptive fields follow.
The first occurrence of ColumnCount indicates the number of columns returned by the
statement.
It is immediately followed by as many sets of the column-descriptive fields as required to
describe each column.
Next, if SummaryCount is greater than zero, a group of fields is returned once for each
WITH clause.
Each group comprises a ColumnCount field that indicates the number of columns
referenced in the clause, and as many sets of the column-descriptive fields as required to
describe each column in that clause:
•
DataType specifies a code associated with a column‘s data type. See Table 65 on
page 424 for the possible data types.
•
DataLen specifies a column‘s length in bytes.
However, if a column‘s data type is DECIMAL, the first byte contains the integral
digits and the second byte contains the fractional digits.
•
ColumnName specifies a column‘s name, consisting of length in bytes of the name
followed by that name in characters from the current session character set. The
maximum length of a name currently may be obtained using the DBCHQE SQL-limits
query, though in the future the maximum might increase to allow character
representation information. The absolute maximum is 65535.
If a column is the result of an expression, the first two bytes contain a length of zero
and the text portion of the field is empty.
•
ColumnFormat specifies a column‘s format, consisting of length in bytes of the
Format followed by that Format in characters from the current session character set.
The maximum length is not externally provided by the Database so the only limit
available is 65535.
If a column‘s format is null, the first two bytes contain a length of zero and the text
portion of the field is empty.
•
ColumnTitle specifies a column‘s title, consisting of length in bytes of the Title
followed by that Title in characters from the current session character set. The
maximum length is not externally provided by the Database so the only limit available
is 65535.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
445
Chapter 15: Parcels for Basic Applications
Parcel Descriptions
If a column‘s title is null, the first two bytes contain a length of zero and the text
portion of the field is empty, when Return-statement-info 'Y' was not specified.
For example, consider the following SELECT statement,
SELECT Name
FROM Employee
WITH COUNT (DeptNo), SUM (Salary) BY Salary
WITH COUNT (DeptNo) BY DeptNo;
This statement produces a PrepInfo parcel with the following byte sequence:
Parcel flavor is 86 with length 124
40 4D BE B8 51 EB 85 1E 00 02 00 01
00 04 D5 81 94 85 00 05 E7 4D F1 F2
61 6D 65 00 02 01 F1 00 04 00 00 00
F0 5D F9 00 0B E2 E4 D4 4D C4 85 97
01 E5 0F 02 00 00 00 0A E9 E9 E9 6B
F9 F9 00 0B 53 75 6D 28 53 61 6C 61
01 01 F1 00 04 00 00 00 06 E2 E4 D4
81 99 A8 5D 00 0B E2 E4 D4 4D C4 85
5D
01
5D
06
A3
E9
72
4D
97
C0
00
60
D5
E9
79
E2
A3
00
04
4D
96
F9
29
81
D5
0C
4E
F1
5D
4B
00
93
96
The parcel fields, above, translate as follows (an explanation of each acronym follows):
CE
NL
CT
CF
DT
CF
CC
TL
CE
NL
CT
CF
DT
CF
DT
CT
CE
CN
CT
CF
DL
TL
DT
CT
CE
CN
CC
TL
DL
TL
DL
CT
CE
CN
CC
TL
NL
CT
DL
CT
CE
CN
DT
CT
NL
CT
NL
CT
CE
FL
DT
CT
FL
CT
NL
CT
CE
FL
DL
CT
FL
CT
FL
CT
SC
CF
DL
CT
CF
CT
FL
CT
SC
CF
NL
CT
CF
CT
CF
CT
CC
CF
NL
CT
CF
CT
CF
CT
CC
CF
FL
CT
CF
CT
CF
CT
DT
CF
FL
CT
CF
CT
CF
DT
TL
CF
CT
CF
CT
CF
DL
TL
CF
CT
CF
CT
CF
DL
CT
CF
CT
CF
CC
TL
CostEstimate
=
CE, 8 bytes
SummaryCount
=
SCxx, where xx is the number of WITH clauses, 2 bytes
ColumnCount
=
CCxx, where xx is the number of columns, 2 bytes
DataType
=
DT, 2 bytes
DataLength
=
DL, 2 bytes
ColumnName
=
NLxx followed by CN, where xx indicates the field‘s length and CN
represents the text
ColumnFormat
=
FLxx followed by CF, where xx indicates the field‘s length and CF
represents the text
ColumnTitle
=
TLxx followed by CT, where xx indicates the field‘s length and CT
represents the text
PrepInfoX
Purpose
Returns a description of the return data specified by a request, when that request is sent to the
Teradata Database with a Request Processing Option of Prepare and a Response Mode of
MultipartIndicator when Return-statement-info 'Y' was not specified.
446
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 15: Parcels for Basic Applications
Parcel Descriptions
The parcel also contains an estimate of the time it will take to execute the statement.
Usage Notes
If the PrepInfoX parcel contains zeros, the statement was an ECHO statement. The PrepInfoX
parcel is generated by the Teradata Database.
Parcel Data
The following information applies to the PrepInfoX parcel.
Flavor
125
Parcel Body
Length
12 to
maximum
body size
Parcel Body Fields
CostEstimate:
8 byte floating
SummaryCount:
2 byte unsigned integer
The following occur once for the SELECTed columns, and
SummaryCount times for any WITH clauses.
ColumnCount:
2 byte unsigned integer
For decimal columns, the following occur:
DataType:
2 byte unsigned integer
DataLen:
8 bytes
Unused:
2 bytes
ColumnName:
two byte unsigned integer plus the
number of bytes specified by that
integer
ColumnFormat:
ColumnTitle:
two byte unsigned integer plus the
number of bytes specified by that
integer
two byte unsigned integer plus the
number of bytes specified by that
integer
For non-decimal columns, the following occur:
DataType:
2 byte unsigned integer
DataLen:
8 bytes
CharacterType:
1 byte unsigned integer
ColumnInformation
8 bits
ColumnName:
2 to 92 bytes of characters
ColumnFormat:
2 to 92 bytes of characters
ColumnTitle:
2 to 182 bytes of characters
Field Notes
The following notes apply to PrepInfoX fields.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
447
Chapter 15: Parcels for Basic Applications
Parcel Descriptions
•
CostEstimate returns a time estimate, in milliseconds, of how long it will take to execute a
request.
The CostEstimate field is set to zero if the estimated time is negligible.
•
SummaryCount specifies the number of WITH clauses in the request.
The SummaryCount field is set to zero if no summary data is returned, that is, if the
request is not a SELECT statement or if the request is a SELECT statement without any
WITH clauses, when Return-statement-info 'Y' was not specified.
•
ColumnCount specifies how many sets of column-descriptive fields follow.
The first occurrence of ColumnCount indicates the number of columns returned by the
statement.
It is immediately followed by as many sets of the column-descriptive fields as required to
describe each column.
Next, if SummaryCount is greater than zero, a group of fields is returned once for each
WITH clause.
Each group comprises a ColumnCount field that indicates the number of columns
referenced in the clause, and as many sets of the column-descriptive fields as required to
describe each column in that clause:
•
DataType specifies a code associated with a column‘s data type. See Table 65 on
page 424 for the possible data types.
•
DataLen specifies a column‘s length in bytes.
However, if a column‘s data type is DECIMAL, the first four bytes contain the integral
digits and the second four bytes contain the fractional digits.
•
CharacterType specifies a code associated with a column‘s data type, as follows:
Table 67: PrepInfoX Data Types
448
If the data type is...
Then the code is...
Not character data
0
Latin1
1
Unicode
2
KanjiSJIS
3
Graphic
4
Kanji1
5
•
ColumnInformation specifies whether the character column is case sensitive. If so, the
value is hexadecimal '80'; otherwise the value is hexadecimal '00'.
•
ColumnName specifies a column‘s name, consisting of length in bytes of the name
followed by that name in characters from the current session character set. The
maximum length of a name currently may be obtained using the DBCHQE SQL-limits
query, though in the future the maximum might increase to allow character
representation information. The absolute maximum is 65535.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 15: Parcels for Basic Applications
Parcel Descriptions
If a column is the result of an expression, the first two bytes contain a length of zero
and the text portion of the field is empty.
•
ColumnFormat specifies a column‘s format, consisting of length in bytes of the
Format followed by that Format in characters from the current session character set.
The maximum length is not externally provided by the Database so the only limit
available is 65535.
If a column‘s format is null, the first two bytes contain a length of zero and the text
portion of the field is empty.
•
ColumnTitle specifies a column‘s title, consisting of length in bytes of the Title
followed by that Title in characters from the current session character set. The
maximum length is not externally provided by the Database so the only limit available
is 65535.
If a column‘s title is null, the first two bytes contain a length of zero and the text
portion of the field is empty.
For example, consider the following SELECT statement,
SELECT Name
FROM Employee
WITH COUNT (DeptNo), SUM (Salary) BY Salary
WITH COUNT (DeptNo) BY DeptNo;
This statement produces a PrepInfoX parcel with the following byte sequence:
Parcel flavor is 86 with length 124
40 4D BE B8 51 EB 85 1E 00 02 00 01
00 00 00 00 00 0C 01 80 00 04 D5 81
E7 4D F1 F2 5D 00 04 D5 81 94 85 00
00 00 00 00 00 00 04 00 00 00 00 00
F0 5D F9 00 0B E2 E4 D4 4D C4 85 97
01 E5 00 00 00 0F 00 00 00 02 00 00
E9 E9 E9 6B E9 E9 F9 4B F9 F9 00 0B
53 61 6C 61 72 79 29 00 01 01 F1 00
00 00 04 00 00 00 00 00 06 E2 E4 D4
81 99 A8 5D 00 0B 53 75 6D 28 44 65
29
01
94
02
06
A3
00
53
00
4D
70
C0
85
01
60
D5
00
75
00
E2
74
00
00
F1
4D
96
00
6D
00
81
4E
00
05
00
F1
5D
0A
28
00
93
6F
The parcel fields, above, translate as follows (an explanation of each acronym follows):
CE
DL
CF
DL
CF
DT
CF
CT
CF
CE
DL
CF
DL
CF
DT
CF
CC
CF
CE
DL
CF
DL
CF
DL
CF
CC
CF
CE
DL
CF
DL
TL
DL
CF
DT
TL
CE
DL
CF
DL
TL
UU
TL
DT
TL
CE
DL
TL
DL
CT
UU
TL
DL
CT
CE
CS
TL
DL
CT
NL
CT
DL
CT
CE
CI
CT
CS
CT
NL
CT
CS
CT
SC
NL
CT
CI
CT
FL
CT
CI
CT
SC
NL
CT
NL
CT
FL
CT
NL
CT
CC
CN
CT
NL
CT
CF
CT
NL
CT
CC
CN
CC
FL
CT
CF
CT
FL
CT
DT
CN
CC
FL
CT
CF
CT
FL
CT
DT
CN
DT
CF
CT
CF
CT
CF
CT
DL
FL
DT
CF
CT
CF
CT
CF
CT
DL
FL
DL
CF
CT
CF
CT
CF
CT
CostEstimate
=
CE, 8 bytes
SummaryCount
=
SCxx, where xx is the number of WITH clauses, 2 bytes
ColumnCount
=
CCxx, where xx is the number of columns, 2 bytes
DataType
=
DT, 2 bytes
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
449
Chapter 15: Parcels for Basic Applications
Parcel Descriptions
DataLen
=
DL, 8 bytes
Unused
=
UU, 2 bytes
CharacterType
=
CS, 1 byte
ColumnInformation =
CI, 1 byte
ColumnName
=
NLxx followed by CN, where xx indicates the field‘s length and CN
represents the text, 2 to 92 bytes
ColumnFormat
=
FLxx followed by CF, where xx indicates the field‘s length and CF
represents the text, 2 to 92 bytes
ColumnTitle
=
TLxx followed by CT, where xx indicates the field‘s length and CT
represents the text, 2 to 182 bytes
RecEnd
Purpose
Delimits the end of a sequence of Field parcels that compose the fields of a single row of
selected results in Field Mode.
Also, the RecEnd parcel follows a Field parcel used to echo characters from the Teradata
server.
Usage Notes
This parcel is generated by the Teradata server.
Parcel Data
The following information applies to the RecEnd parcel.
Flavor
Parcel Body
Length
Parcel Body Fields
28
0
none
Record
Purpose
The Record parcel returns one row of selected results. The results are either in Record Mode
or Indicator Mode, depending on which mode is requested.
Parcel Data
The following table explains how Record Parcel modes relate to nulls.
450
In this mode...
Nulls are...
Record
not explicitly identified in the Record parcel.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 15: Parcels for Basic Applications
Parcel Descriptions
In this mode...
Nulls are...
Indicator
explicitly identified.
The Flavor and the Data Field contain the same values in the Record Mode and Indicator
Mode versions although the Data Field has a different offset in the two versions.
There is no obvious way to distinguish a Record Mode Record parcel from an Indicator Mode
Record parcel by examining the Record parcel itself.
However, the mode can be determined either by remembering the type of request parcel (Req
or IndicReq) or by noting the response context.
In Indicator Mode, the parcel immediately before the first Record Mode Record parcel is a
Success parcel; in Indicator Mode, the parcel immediately before the first Indicator Mode
Record parcel is a DataInfo parcel, which is preceded by the Success parcel.
Record (In Indicator Mode)
Purpose
The Record parcel returns one row of selected results. In Indicator Mode, null values are
explicitly identified.
Usage Notes
In Indicator Mode, the parcel immediately before the first Record Mode Record parcel is a
Success parcel; in Indicator Mode, the parcel immediately before the first Indicator Mode
Record parcel is a DataInfo parcel, which is preceded by the Success parcel.
Note that a Teradata SQL SHOW TABLE statement returns only one Record parcel. Within
the Record parcel, each line of a table is separated from the next by hex 0D (decimal 13).
This parcel is generated by the Teradata server.
Parcel Data
The following information applies to the Record parcel (in Indicator Mode).
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
451
Chapter 15: Parcels for Basic Applications
Parcel Descriptions
Parcel Body
Length
Flavor
10
Parcel Body Fields
2 to
maximum
body size
NullIndicators: (n+7)/8 bytes
where:
n = the number of items in the
Data Field, organized as:
bit 1, but 2, . . . , bit i,
. . . , but n, unused bits
Data: body length - ((n+7) / 8) bytes
organized as: item 1, item2, . . . , item i,
. . . , item n
Field Notes
The Data Field contains items with characteristics as follows:
•
The NullIndicators Field contains one bit for each item in the DataField, stored in the
minimum number of 8-bit bytes required to hold them, with the unused bits in the
rightmost byte set to zero.
Each bit is matched on a positional basis to an item in the Data Field. That is, the ith bit in
the NullIndicators Field corresponds to the ith item in the Data Field.
If a bit is...
Then the value of the corresponding data item is...
ON
null.
OFF
not null.
Whether the null indicator bit is ON or OFF, the length of the corresponding data item is
meaningful.
The Data Field contains a formatted record of data:
•
Then...
a variable length string
the length portion of the data item is set to the actual length
of the string which is zero if the data item represents a null
value.
an integer
the data item will occupy four bytes which is zeros if the data
item represents a null value.
The Data Field contains items with characteristics as follows:
•
452
If the data item is to contain...
The order of the items.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 15: Parcels for Basic Applications
Parcel Descriptions
Each expression in the SELECT statement generates one data item in the Indicator
Mode Record parcel, in the order listed in the SELECT statement.
That is, the ith data item in the Indicator Mode Record parcel contains the result of the
ith expression in the SELECT statement.
•
The data type of each item.
Each item in the Data Field of the Indicator Mode Record parcel has the data type
which is specified in the corresponding data type code in the DataInfo parcel between
the Success parcel and the first Indicator Mode Record parcel.
That is, the ith data item in the Indicator Mode Record parcel has the ith data type
coded in the DataInfo parcel.
•
The length of each item.
Each item in the Data Field of the Indicator Mode Record parcel has the length which
is specified in the corresponding length in the DataInfo parcel between the Success
parcel and first Indicator Mode Record parcel.
That is, the ith data item in the Indicator Mode Record parcel has the ith length in the
DataInfo parcel.
•
The format of each item.
The contents of each item are in client internal format, as determined by the data type.
For data types, see Table 65 on page 424.
For the form that a null value takes for each of these data types, see “Manipulating
Nulls” in SQL Fundamentals
Record (In Record Mode)
Purpose
In Record Mode, nulls are not explicitly identified in the Record parcel, when
Return-statement-info 'Y' was not specified.
Usage Notes
Note that a Teradata SQL SHOW TABLE statement returns only one Record parcel.
Within the Record parcel, each line of a table is separated from the next by hex 0D (decimal
13).
This parcel is generated by the Teradata Database.
Parcel Data
The following information applies to the Record parcel (in Record Mode).
Flavor
10
Parcel Body
Length
1 to
maximum
body size
Parcel Body Fields
Data: organized as:
item 1, item2, . . . , item i, . . . , item n
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
453
Chapter 15: Parcels for Basic Applications
Parcel Descriptions
If in Record Mode, the Record parcel for an ECHO statement does NOT contain zeros.
Field Notes
The Data Field contains items with characteristics as follows:
•
The order of the items. Each expression in the SELECT statement generates one item in
the Record Mode Record parcel, in the order listed in the SELECT statement. That is, the
ith item in the Record Mode Record parcel contains the result of the ith expression in the
SELECT statement.
•
The data type of each item. Each expression has a resulting data type, as governed by data
type conversion rules.
One method for obtaining the resulting data type of an expression is to use the HELP
COLUMN statement on that expression.
For details, see the description of the HELP COLUMN statement in the SQL Data
Definition Language.
An alternate method for obtaining the resulting data type of an expression is to consult the
data type conversion rules.
The rules begin with the data type of the elementary operands (columns in CREATE
TABLE statements, variables in USING row descriptors, constants in expressions, and
built-in values in expressions).
The rules then account for the effects of operations on the elementary operands (explicit
data type conversion in description phrases of expressions, arithmetic operations in
expressions, character operations in expressions, and functions and aggregate operations
in expressions).
For details, see SQL Data Types and Literals and SQL Functions, Operators, Expressions, and
Predicates for pointers to the rules.
•
The length and format of each item.
The contents of each item are in client internal format as determined by the resulting data
type of the expression. See Table 65 on page 424.
For the form that a null value takes in each of these data types, see “Manipulating Nulls” in
SQL Fundamentals.
RecStart
Purpose
Delimits the start of a sequence of Field parcels that constitute the fields of a single row of
selected results in Field Mode.
Also, the RecStart parcel precedes a Field parcel containing a string being echoed from the
Teradata server.
Usage Notes
This parcel is generated by the Teradata server.
454
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 15: Parcels for Basic Applications
Parcel Descriptions
Parcel Data
The following information applies to the RecStart parcel.
Flavor
Parcel Body
Length
Parcel Body Fields
27
0
none
ResultSet
Purpose
Returned after a Success, OK, or ResultSummary parcel to introduce parcels returned from a
CALLed stored procedure when Result-sets-OK 'Y' was specified (corresponding to the
Options parcel (flavor 85) DynamicResultSets 'Y' option).
TRDSPBRT
Flavor
Mnemonic
172
TRDSPFRT
Field
Length
Value
PBRTRNUM
8byte unsigned integer.
row number contained in
the first response parcel
returned for this statement.
A value of zero corresponds
to parcels before those for
the actual first row's data
(Success, for example) while
a value one greater then the
number of rows
corresponds to parcels after
those for the actual last
row's data (EndRequest).
PBRTDB
2byte unsigned integer,
plus the number of
bytes specified by that
integer
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Stored procedure database,
consisting of the length in
bytes of the name, followed
by that name in characters
from the current session
character set. The maximum
length of a name may be
obtained using the
DBCHQE SQL-limits query.
455
Chapter 15: Parcels for Basic Applications
Parcel Descriptions
TRDSPBRT
Flavor
Mnemonic
Field
Length
Value
PBRTPN
2byte unsigned integer,
plus the number of
bytes specified by that
integer
Stored procedure name,
consisting of the length in
bytes of the name, followed
by that name in characters
from the current session
character set. The maximum
length of a name may be
obtained using the
DBCHQE SQL-limits query
ResultSummary
Purpose
Returned in response to a successfully executed Teradata SQL statement when usingEnhanced
Statement-status.
It also indicates successful completion of other types of requests (for example, a logon
request) when using Enhanced Statement-status.
Usage Notes
This parcel is generated by the Teradata Database.
Parcel Data
The following information applies to the ResultSummary parcel.
Table 68: ResultSummary Parcel Information
Flavor
171
456
Parcel Body
Length
24 to
maximum
parcel size
Parcel Body Fields
Activity Count:
8 byte unsigned integer
Statement No:
2 byte unsigned integer
Field Count:
2 byte unsigned integer
Activity Type:
2 byte unsigned integer
See “Activity Type” on page 425 for the possible
activity types
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 15: Parcels for Basic Applications
Parcel Descriptions
Table 68: ResultSummary Parcel Information (continued)
Flavor
Parcel Body
Length
Parcel Body Fields
Mode:
one EBCDIC character, as one of the following:
F - if Response-mode is Field
R - if Response-mode is Record
I - is Response-mode is Indicator
M- if Response-mode is MultipartIndicator
blank if Response-mode does not apply to the
request
Reserved:
nine bytes
Optional
self-defining
extensions:
zero or more bytes
Zero or more self-defining extensions may be present to convey situation-dependent
information. When multiple extensions are present, their order is undefined. Each extension
begins with the following fields:
Field
Length
Description
Information Id
2 byte unsigned integer
Identifies the type of extension,
as one of the following, 1
Warning Message.
Information Length
2 byte unsigned integer
Specifies the length of
subsequent data in the
extension (does not include the
length of the extension
header).
The Warning Message extension consists of the following fields:
Field
Length
Description
Warning-number
2 byte unsigned integer
Identifies the sever message
number of the warning
Warning-message
Length varies
The text of the server message,
in the request's character set,
associated with the
Warning-number.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
457
Chapter 15: Parcels for Basic Applications
Parcel Descriptions
Size
Purpose
Specifies the size of a returned field.
Usage Notes
This parcel is generated by the Teradata server.
Parcel Data
The following information applies to the Size parcel.
Flavor
Parcel Body
Length
Parcel Body Fields
26
2
MaxFldSize: 2 byte unsigned integer
Field Notes
MaxFldSize is the maximum size of the field that will be returned in this same relative
position.
SizeEnd
Purpose
Delimits the end of a sequence of Size parcels that specifies the maximum size of each field
returned in Field Mode.
Usage Notes
This parcel is generated by Teradata Database.
Parcel Data
The following information applies to the SizeEnd parcel.
Flavor
Parcel Body
Length
Parcel Body Fields
25
0
none
SizeStart
Purpose
Delimits the start of a sequence of Size parcels that specifies the maximum size of each field
returned in Field Mode.
458
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 15: Parcels for Basic Applications
Parcel Descriptions
Usage Notes
This parcel is generated by the Teradata server.
Parcel Data
The following information applies to the SizeStart parcel.
Flavor
Parcel Body
Length
Parcel Body Fields
24
0
none
StatementInformation Responses
Purpose
Returned in response to a successfully executed Teradata SQL statement when
Return-statement-info 'Y' is specified (corresponding to the Options parcel (flavor 85)
Return-statement-info 'Y' option). If more data needs be returned than will fit into a single
StatementInformation parcel, multiple parcels will be returned.
Usage Notes
This parcel is generated by the Teradata Database.
Parcel Data
The following information applies to the StatementInformation parcel.
Flavor
169
Parcel Body
Length
6 to
maximum
parcel size
Parcel Body Fields
Self-defining extensions: Six or more bytes
One or more self-defining extensions are present to convey situation-dependent information.
While the extensions may require more than one StatementInformation parcel, an extension
will be wholly contained in one parcel. The extensions fall into two types: those that describe
one or more items and those with an Information Layout of End-information that end related
extensions of the first type.
Note: When multiple extensions with different Information Ids are present, their order is
undefined so may change in the future.
Each extension begins with the following fields:
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
459
Chapter 15: Parcels for Basic Applications
Parcel Descriptions
Field
Length
Description
PBTILOUT
2-byte
unsigned
integer
Information Layout identifies the layout of the data following the
header as one of the following:
1 Full-layout
2 Limited-layout
3 Statistic-layout
4 End-information
5 Untransformed limited-layout used only in requests, for details
refer to Table 70 on page 465.
Note: To allow for future enhancement, other values must be
ignored.
PBTIID
2-byte
unsigned
integer
Information Id identifies the type of extension as one of the
following integers:
1 - Parameter (used only when DBCAREA
Request-processing-option is 'S' (Prepare mode supporting
parameterized SQL) (corresponding to the Options parcel (flavor
85) Function 'S' option), which describes each item specified by a
parameter (indicated by question mark) in the SQL statement.
2 - Query, which describes each item (field or column) returned by
an SQL SELECT statement.
3 - Summary, which describes each summary item returned by a
WITH clause of an SQL SELECT statement.
4 - Identity-column, which describes each item (field or column)
returned by an SQL INSERT statement, as requested by DBCAREA
Return-identity-data (corresponding to Options parcel (flavor 85)
IdentityColumnRetrieval)
5 - Stored-procedure-Output, which describes each item returned
by a stored-procedure OUT or INOUT parameter.
6 - Stored-procedure-resultSet, which describes each row returned
by a stored-procedure.
7 - Estimated-processing, which provides an estimate of the
execution time for the statement.
8 - Data-attributes. Used only in requests. For details see
“StatementInformation Requests” on page 490.
Note: To allow for future enhancement, other values must be
ignored.
PBTILEN
2-byte
unsigned
integer
Information Length specifies the length of subsequent data in the
extension (does not include the length of the extension header).
Note: To allow for future enhancement, lengths longer than
expected, along with the additional data, must be ignored.
Full-layout for Responses
The Full-layout is used for Parameter, Query, Summary, Identity-column,
Stored-procedure-output, and Stored-procedure-resultSet information, when DBCAREA
460
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 15: Parcels for Basic Applications
Parcel Descriptions
Request-processing-option is 'P' (Prepare), 'S' (Prepare mode supporting parameterized
SQL), or 'B' (Prepare and Execute) (corresponding to the Options parcel [flavor 85] Function
'P', 'S', and 'B' options). Table 69 describes the Full-layout fields specific to responses.
Table 69: Full-layout Fields for Responses
Field
Length
Description
PBTIFDB
2 byte unsigned
integer plus the
number of bytes
specified by that
integer
Database-name consisting of the length in bytes of the name,
followed by that name in characters from the current session
character set. If the name does not apply in the SQL statement's
context or is not available, the length is zero and no name is
present. The maximum length of a name may be obtained using
the DBCHQE SQL-limits query.
PBTIFTB
2 byte unsigned
integer plus the
number of bytes
specified by that
integer
Table, View, or Procedure name consists of the length in bytes of
the name, followed by that name in characters from the current
session character set. If the name does not apply in the SQL
statement's context or is not available, the length is zero and no
name is present. The maximum length of a name may be
obtained using the DBCHQE SQL-limits query.
PBTIFCN
2 byte unsigned
integer plus the
number of bytes
specified by that
integer
Column, User-defined Function (UDF), User-defined Method
(UDM), Stored-procedure, or parameter name consists of the
length in bytes of the name, followed by that name in characters
from the current session character set. If the name does not
apply in the SQL statement's context or is not available, the
length is zero and no name is present. The maximum length of a
name may be obtained using the DBCHQE SQL-limits query.
PBTIFCP
2 byte unsigned
integer
The relative position of the column within the table, with the
first column having a value of '1'. If the value does not apply in
the SQL statement's context (for example, the item is an
expression) or is not available, a zero is present
PBTIFAN
2 byte unsigned
integer plus the
number of bytes
specified by that
integer
AS-name consists of the length in bytes of the column name as
renamed by an SQL AS-clause, followed by that name in
characters from the current session character set. If the name
does not apply in the SQL statement's context or is not available,
the length is zero and no name is present.
PBTIFT
2 byte unsigned
integer plus the
number of bytes
specified by that
integer
Column Title consists of the length in bytes of the title, followed
by that title in characters from the current session character set.
If the title does not apply in the SQL statement's context (for
example, the item is an expression) or is not available, the length
is zero and no title is present. The maximum length is not
externally provided by the Database so the only limit available is
65535.
PBTIFF
2 byte unsigned
integer plus the
number of bytes
specified by that
integer
Column Format consists of the length in bytes of the format,
followed by that format in characters from the current session
character set. If the format does not apply in the SQL statement's
context (for example, the item is an expression) or is not
available, the length is zero and no format is present. The
maximum length is not externally provided by the Database so
the only limit available is 65535.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
461
Chapter 15: Parcels for Basic Applications
Parcel Descriptions
Table 69: Full-layout Fields for Responses (continued)
462
Field
Length
Description
PBTIFDV
2 byte unsigned
integer plus the
number of bytes
specified by that
integer
Default Value consists of the length in bytes of the default,
followed by that default in characters from the current session
character set. If the default does not apply in the SQL
statement's context (for example, the item is an expression) or is
not available, the length is zero and no default is present.
PBTIFIC
1 byte character
Set to an EBCDIC 'Y' if the column is an Identity Column; 'N'
otherwise. If an Identity column is not involved or the
information is not available, an EBCDIC 'U' is set.
PBTIFDW
1 byte character
Set to an EBCDIC 'Y' if the column is definitely writable (that is,
the user has permission to update the column); 'N' otherwise
(the item is not a column or the user's permission is
insufficient).
PBTIFNL
1 byte character
Set to an EBCDIC 'Y' if NULLs can be stored in item (columns
not defined NOT NULL); 'N' otherwise (for example, the item is
an expression). If this concept does not apply in the SQL
statement's context or the information is not available, an
EBCDIC 'U' is set.
PBTIFMN
1 byte character
Set to an EBCDIC 'Y' if NULLs can be returned for the item; 'N'
otherwise. If this concept does not apply in the SQL statement's
context or the information is not available, an EBCDIC 'U' is set.
PBTIFSR
1 byte character
Set to an EBCDIC 'Y' if the item is permitted in a WHERE SQL
clause; 'N' otherwise (for example, the result is a Large Object
(LOB)). If this concept does not apply in the SQL statement's
context or the information is not available, an EBCDIC 'U' is set.
PBTIFWR
1 byte character
Set to an EBCDIC 'Y' if the column is writable (the item is a
modifiable column); 'N' otherwise (for example, the item is an
expression).
PBTIFDT
2 byte unsigned
integer
Specifies the data type of the item returned. If the type is
ambiguous (for example, the item is a parameter in an
expression) or is not available, a zero is set. In addition to the
data types available for the PrepInfo[X] (flavor 86 or 125) and
DataInfo[X] (flavor 71 or 146) parcels, see Table 65 on page 424
for the possible data types. See Table 70 on page 465 for
additional data types that are also supported.
PBTIFUT
2 byte unsigned
integer
For user-defined types, a binary 1 will be set for structured types,
2 for distinct types, or 3 for internal types. If the type is
ambiguous (for example, a parameter in an expression) or is not
available, a zero is set.
PBTIFTY
2 byte unsigned
integer plus the
number of bytes
specified by that
integer
Type Name consists of the length in bytes of the name, followed
by that name in characters from the current session character
set. If the name does not apply in the SQL statement's context
(for example, the type is not user-defined) or is not available, the
length is zero and no name is present. The maximum length of a
name may be obtained using the DBCHQE SQL-limits query.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 15: Parcels for Basic Applications
Parcel Descriptions
Table 69: Full-layout Fields for Responses (continued)
Field
Length
Description
PBTIFMI
2 byte unsigned
integer plus the
number of bytes
specified by that
integer
Data Type Miscellaneous Information consists of the length in
bytes of the information, followed by that information in
characters from the current session character set. If the
information does not apply in the SQL statement's context (for
example, the type has no information) or is not available, the
length is zero and no information is present.
PBTIFMDL
8 byte unsigned
integer
The total number of bytes of data that might be returned for this
item.
PBTIFND
2 byte unsigned
integer
The total number of digits if the item has a decimal or numeric
data type. For other data types, a zero is returned.
PBTIFNID
2 byte unsigned
integer
The number of interval digits if the item is a temporal data type.
For other data types, a zero is returned.
PBTIFNFD
2 byte unsigned
integer
The number of fractional digits if the item is a decimal data type
(or the deprecated temporal types such as time, timestamp,
interval...to second, and interval second). For other data types, a
zero is returned.
PBTIFCT
1 byte unsigned
integer
The character set type of the item, as either 1 if Latin, 2 if
Unicode, 3 if Japanese Shift-JIS, 4 if Graphic, or 5 if Japanese
Kanji1. If not character data, a zero is returned.
PBTIFMNC
8 byte unsigned
integer
The total number of characters returned for this item. A value of
zero is set if not character data.
PBTIFCS
1 byte unsigned
character
Set to an EBCDIC 'Y' if a character item is case sensitive
(column defined CASESPECIFIC); 'N' if not or not a character
item. If this concept does not apply in the SQL statement's
context or the information is not available, an EBCDIC 'U' is set.
PBTIFSN
1 byte unsigned
character
Set to an EBCDIC 'Y' if a numeric item is signed; 'N' if unsigned
(the BYTE data type) or not a numeric item. If this concept does
not apply in the SQL statement's context or the information is
not available, an EBCDIC 'U' is set.
PBTIFK
1 byte unsigned
character
Set to an EBCDIC 'Y' if the columns uniquely describes the row;
'N' otherwise. If this concept does not apply in the SQL
statement's context or the information is not available, an
EBCDIC 'U' is set.
PBTIFU
1 byte unsigned
character
Set to an EBCDIC 'Y' if the column is the only member of a
unique index; 'N' otherwise. If this concept does not apply in the
SQL statement's context or the information is not available, an
EBCDIC 'U' is set.
PBTIFE
1 byte unsigned
character
Set to an EBCDIC 'Y' if the item is an expression; 'N' otherwise.
If this concept does not apply in the SQL statement's context or
the information is not available, an EBCDIC 'U' is set.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
463
Chapter 15: Parcels for Basic Applications
Parcel Descriptions
Table 69: Full-layout Fields for Responses (continued)
Field
Length
Description
PBTIFSO
1 byte unsigned
character
Set to an EBCDIC 'Y' if the item is permitted in an ORDERBY
SQL clause; 'N' otherwise (for example, the result is a Large
Object (LOB)). If this concept does not apply in the SQL
statement's context or the information is not available, an
EBCDIC 'U' is set.
Note: Due to the large number of variable-length fields (fields containing a length followed by that
amount of data), great care is required to process a Full-layout extensions. To locate a field requires
that the length of all previous variable-length fields be inspected.
When at least one more byte is present, the first such byte is defined as follows:
Field
Length
Description
PBTIFTP
1-byte character
Set to one of the following EBCDIC characters:
• 'I' if the item is a stored-procedure IN parameter
• 'O' if the item is a stored-procedure OUT parameter
• 'B' if the item is a stored-procedure INOUT parameter
If the item is not a stored-procedure parameter or the
information is not available, an EBCDIC 'U' set.
PBTIFDOS
2 bytes
When Transforms are off for this type of item, the depth of this
attribute of the item's structure. A value of zero indicates the
item is not a structure or Transforms are not off. Other values
indicate the nesting level of the structure
PBTIFTC
1-byte character
Set to one of the following EBCDIC characters:
•
•
•
•
464
'N' if the item is non-temporal
'V' if the item is ValidTime
'T' if the item is a TranactionTime
'U' if the information is unavailable
PBTIFUA
2 byte unsigned
integer plus the
number of bytes
specified by that
integer
When Transforms are off for this type of item, Untransformed
Attribute Name consists of the length in bytes of the name of
this attribute in the item's structure, followed by that name in
characters from the current session character set. If the item is
not a structure or Transforms are not off, the length is zero and
no name is present. The maximum length of a name may be
obtained using the DBCHQE SQL-limits query.
PBTIFTDT
2 byte unsigned
integer
When Transforms are off for this type of item, specifies the data
type of the untransformed item. If the item is not a structure or
Transforms are not off, the value is zero. In addition to the data
types available for the PrepInfo[X] (flavor 86 or 125) and
DataInfo[X] (flavor 71 or 146) parcels, which are defined in
"DataType" Table 65 on page 424. Table 65 shows additional
types that are supported.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 15: Parcels for Basic Applications
Parcel Descriptions
Table 70: PBTIFDT Additional Data Types
Name
Type if
non-nullable
Type if Nullable
Type if IN
parameter
Type if INOUT
parameter
Type if OUT
parameter
TIME
760
761
1260
1261
1262
TIMESTAMP
764
765
1264
1265
1266
TIME WITH TIME ZONE
768
769
1268
1269
1270
TIMESTAMP WITH TIME ZONE
772
773
1272
1273
1274
INTERVAL YEAR
776
777
1276
1277
1278
INTERVAL YEAR TO MONTH
780
781
1280
1281
1282
INTERVAL MONTH
784
785
1284
1285
1286
INTERVAL DAY
788
789
1288
1289
1290
INTERVAL DAY TO HOUR
792
793
1292
1293
1294
INTERVAL DAY TO MINUTE
796
797
1296
1297
1298
INTERVAL DAY TO SECOND
800
801
1300
1301
1302
INTERVAL HOUR
804
805
1304
1305
1306
INTERVAL HOUR TO MINUTE
808
809
1308
1309
1310
INTERVAL HOUR TO SECOND
812
813
1312
1313
1314
INTERVAL MINUTE
816
817
1316
1317
1318
INTERVAL MINUTE TO
SECOND
820
821
1320
1321
1322
INTERVAL SECOND
824
825
1324
1325
1326
Note: These data types may not be used in DataInfo[X] (flavor 71 or 146) request parcels.
Limited-layout for Responses
The Limited-layout is used for Query, Summary, Identity-column, Stored-procedure-output,
and Stored-procedure-resultSet information, when DBCAREA Request-processing-option is
'E' (Execute) (corresponding to the Options parcel (flavor 85) Function 'E' option). Table 71
describes the Limited-layout fields specific to responses.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
465
Chapter 15: Parcels for Basic Applications
Parcel Descriptions
Table 71: Limited-layout Fields for Responses
Field
Length
Description
PBTILDT
2 byte unsigned
integer
Specifies the data type of the item returned. If the type is
ambiguous (for example, a parameter in an expression) or is not
available, a zero is set. In addition to the data types available for
the PrepInfo[X] (flavor 86 or 125) and DataInfo[X] (flavor 71 or
146) parcels, see Table 65 on page 424 for the possible data types.
See Table 70 on page 465 for additional data types that are also
supported.
PBTILMDL
8 byte unsigned
integer
The total number of bytes of data that might be returned for this
item.
PBTILND
2 byte unsigned
integer
The total number of digits if the item has a decimal or numeric
data type. For other data types, a zero is returned.
PBTILNID
2 byte unsigned
integer
The number of interval digits if the item is a temporal data type.
For other data types, a zero is returned.
PBTILNFD
2 byte unsigned
integer
The number of fractional digits if the item is a decimal data type
(or the deprecated temporal types such as time, timestamp,
interval...to second, and interval second). For other data types, a
zero is returned.
Statistic-layout
The Statistic-layout is used for Estimated-processing information. Table 8 shows the
Statistic-layout fields.
Table 72: Statistic-layout fields
Field
Length
Description
PBTISEE
8 byte unsigned
integer
The estimated execution time for the statement, in milliseconds.
End-information layout
The End-information layout indicates there are no more items for the current information
(Parameter, Query, Summary, Identity-column, Stored-procedure-output,
Stored-procedure-resultSet, or Estimated-processing). There is no data for End-information.
StatementInformationEnd Responses
Purpose
Returned in response to a successfully executed Teradata SQL statement when
Return-statement-info 'Y' was specified (corresponding to the Options parcel (flavor 85)
Return-statement-info 'Y' option) to indicate that no more StatementInformation parcels
(flavor 169) exist.
466
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 15: Parcels for Basic Applications
Parcel Descriptions
Usage Notes
This parcel is generated by the Teradata Database.
Parcel Data
The following information applies to the StatementInformationEnd parcel.
Flavor
Parcel Body
Length
Parcel Body Fields
170
0
none
Success
Purpose
Returned in response to a successfully executed Teradata SQL statement in
MultipartIndicator, or Indicator Response-mode when using other than Original
Statement-status.
It also indicates successful completion of other types of requests (for example, a logon
request).
Usage Notes
If the activity type is 33 (Echo), an echo sequence follows.
If the Warninglength is zero, there may be some slack bytes following the Warninglength. If
so, they are added into the parcel length total.
This parcel is generated by the Teradata Database.
Parcel Data
The following information applies to the Success parcel.
Flavor
Parcel Body
Length
Parcel Body Fields
8
14 to 269
StatementNo:
byte unsigned integer
ActivityCount:
4 byte unsigned integer
WarningCode:
2 byte unsigned integer
FieldCount:
2 byte unsigned integer
ActivityType:
2 byte unsigned integer
WarningLength:
2 byte unsigned integer
WarningMsg:
0 to 255 bytes
Field Notes
The following notes apply to Success fields.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
467
Chapter 15: Parcels for Basic Applications
Parcel Descriptions
•
StatementNo is the number of the Teradata SQL statement for which this is the first parcel
of a response.
•
ActivityCount is the total number of records selected, inserted, updated or deleted.
•
WarningCode is usually zero. If it is nonzero, it represents a comment on an operation
that was carried out.
•
FieldCount is the total number of fields returned in each record.
•
ActivityType is an encoded value representing the type of Teradata SQL statement that
was processed. See Table 66 on page 425 for the possible activity types.
•
WarningLength is the length of the warning message. If WarningLength is zero, there is no
warning message. See the Messages manual for more information about any particular
code.
•
WarningMsg is the text of the warning message.
TitleEnd
Purpose
Delimits the end of a sequence of Field parcels that provides heading information for a
response.
Usage Notes
This parcel is generated by the Teradata Database.
Parcel Data
The following information applies to the TitleEnd parcel.
Flavor
Parcel Body
Length
Parcel Body Fields
21
0
none
TitleStart
Purpose
Delimits the start of a sequence of Field parcels that provides heading information for a
response.
Usage Notes
This parcel is generated by the Teradata server.
Parcel Data
The following information applies to the TitleStart parcel.
468
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 15: Parcels for Basic Applications
Parcel Descriptions
Flavor
Parcel Body
Length
Parcel Body Fields
20
0
none
With
Purpose
Delimits the start of a sequence of parcels that provides descriptors for the results of a
summary generated by a WITH clause.
Usage Notes
The WithId specifies the parcels that apply to the WITH clause.
This parcel is generated by the Teradata server.
Parcel Data
The following information applies to the With parcel.
Flavor
Parcel Body
Length
Parcel Body Fields
33
2
WithID: 2 byte unsigned integer
Field Notes
WithId is the summary number (1-n) for this WITH clause.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
469
Chapter 15: Parcels for Basic Applications
Parcel Descriptions
470
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
CHAPTER 16
Parcels for Advanced Applications
This chapter describes parcels that may be used by applications that specify either a
DBCAREA Request-mode of B (commonly referred to as Buffer-mode applications) or a
DBCAREA Initiate-request extension (DBCAIRX) to add request parcels to those constructed
by CLIv2.
Parcel Structure
A parcel is a discrete physical unit of information transferred between CLIv2 or advanced
applications and the Teradata Database. It consists of two parts: the header and the body,
which may be null.
Header
Body
2417A009
Parcel Header
Flag
There are two formats of parcel headers. The parcel headers are symbolically defined in the
TC2XPH file. The format of the first is:
0
Flavor
Length
2
4
2417A010
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
471
Chapter 16: Parcels for Advanced Applications
Parcel Header
Table 73: Original Parcel Header (TPH0)
Field Name
Offset
Length
Description
PH0FLAVR
(FLAVOR-FLAG
for COBOL
'flavor' for C,
and PL/I)
00
1 bit
A binary zero, indicating this header format. The
mnemonic for the bit is PH0FALT
('Tc2ph_Alternate' for C, TPH0_ALTERNATE for PL/I)
PH0FLAVR
('flavor' for
COBOL, C,
and PL/I)
0.1
15 bits
An unsigned integer identifying the type of parcel body.
PH0LEN
('length' for C
and PL/I)
02
2 bytes
An unsigned integer specifying the length of the parcel, in
bytes, including the parcel header and any body.
Flag
The format of the second is:
Unused
Flavor
0
2
Length
4
8
2417A011
Table 74: Alternate Parcel Header (TPH1)
Field Name
Offset
Length
Description
PH1FLAVR
(FLAVOR-FLAG
for COBOL
'flavor' for C and
PL/I)
00
1 bit
A binary zero, indicating this header format. The
mnemonic for the bit is PH1FALT
('Tc2ph_Alternate' for C, TPH1_ALTERNATE for PL/I)
PH1FLAVR
('flavor' for
COBOL, C, and
PL/I)
0.1
15 bits
An unsigned integer identifying the type of parcel body.
PH1FILL1
('fill1' for
COBOL, C, and
PL/I)
02
2 bytes
Not used: Set to binary zeroes.
PH1LEN
('length' for C
and PL/I)
04
4 bytes
An unsigned integer specifying the length of the parcel, in
bytes, including the parcel header and any body.
A response will only contain a parcel with the enlarged header if the APH-response-permitted
option was specified and the Teradata Database supports the alternate header for that parcel.
472
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 16: Parcels for Advanced Applications
Parcel Flavors
Furthermore, parcels whose length is less than or equal to 65535 may use either header
format.
Parcel Flavors
The following table provides the flavor number and name of the parcels used by advanced
applications. The parcel flavors and content of the body are symbolically defined in the
TRDSPB file.
Table 75: Parcel Flavors
Flavor
Parcel Name
Flavor
Parcel Name
1
Req
3
Data
13
FMReq
68
IndicData
69
IndicReq
71
DataInfo
85
Options
120
CursorHost
121
CursorDBC
128
Multi-TSR
129
SP Options
140
MultipartData
141
EndMultipartData
142
MultipartIndicData
143
EndMultipartIndicData
146
DataInfoX
148
MultipartRequest
169
StatementInformation
170
StatementInformationEnd
188
CREATE CONSTRAINT
189
ALTER CONSTRAINT
190
DROP CONSTRAINT
Parcel Types
There are two parcel types:
Parcel type...
Is generated for...
Request
requests sent to the Teradata Database
Response
responses sent from the Teradata Database to a client
The following two sections describe request and response parcels.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
473
Chapter 16: Parcels for Advanced Applications
Parcel Types
Request Parcels: Overview
Request parcels are normally application's request. An application may generate all or some
request parcels itself. All parcels may be generated by specifying a DBCAREA Request-mode
of B (commonly referred to as Buffer-mode applications). Parcels may be added to those
generated by CLIv2 by using a DBCAREA Initiate-request extension (DBCAIRX).
Table 76 lists the request parcels by flavor, name, and use.
Table 76: Request Parcel Flavors, Names, And Uses
Flavor
Parcel Name
Use
1
Req
Initiates a request (Record Mode)
3
Data
Contains data for a Teradata SQL request (Record
Mode)
13
FMReq
Initiates a request (Field Mode)
68
IndicData
Contains data for a Teradata SQL request (Indicator
Mode)
69
IndicReq
Initiates a request (Indicator Mode)
71
DataInfo
Sends description of whichever data parcel follows it
85
Options
Provides options for a request.
120
CursorHost
Provides cursor information.
128
Multi-TSR
Segments special-purpose requests into multiple parcels.
129
SP Options
Provides options for creation of a Stored Procedure.
146
DataInfoX
For MultipartIndicator mode responses, describes the
data contained in subsequent MultipartRecord parcels.
169
StatementInformation
Describes the data items contained in the request when
those attributes are not otherwise known.
170
StatementInformationEnd
Delimits StatementInformation parcels in the request.
Response Parcels: Overview
Response parcels are generated by the Teradata Database in response to an application's
request. Not every parcel appears in every response.
Table 77 lists the response parcels by flavor, name, and use.
Table 77: Response Parcel Flavors, Names, And Uses
474
Flavor
Parcel Name
Use
121
CursorDBC
Returns cursor information
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 16: Parcels for Advanced Applications
Parcel Descriptions
Table 77: Response Parcel Flavors, Names, And Uses (continued)
Flavor
Parcel Name
Use
140
MultipartData
Contains data for a Teradata SQL request in
MultipartIndicator response mode when Use-presence
was not requested
141
EndMultipartData
Delimits data for a Teradata SQL request in
MultipartIndicator response mode when Use-presence
was not requested
142
MultipartIndicData
Contains data for a Teradata SQL request in
MultipartIndicator response mode when Use-presence
was requested
143
EndMultipartIndicData
Delimits data for a Teradata SQL request in
MultipartIndicator response mode when Use-presence
was requested
148
MultipartRequest
Initiates a request in MultipartIndicator response
mode
Parcel Descriptions
The following alphabetized sections describe parcels generated by advanced applications and
the Teradata Database.
• CursorDBC
• CursorHost
• Data
• DataInfo
• DataInfoX
• EndMultipartData
• EndMultipartIndicData
• FMReq
• IndicData
• IndicReq
• MultipartData
• MultipartIndicData
• MultipartRequest
• Options
• Req
• SP Options
• StatementInformation Requests
• StatementInformationEnd Returns
CursorDBC
Purpose
The CursorDBC parcel returns to the application a cursor row identifier to after a SELECT
FOR CURSOR statement.
Usage Notes
The information returned is meaningful only for use in a subsequent CursorHost parcel.
The CursorDBC parcel is generated by the Teradata Database.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
475
Chapter 16: Parcels for Advanced Applications
Parcel Descriptions
Parcel Data
The following table lists field information for the CursorDBC parcel.
Flavor
Field
Parcel
Body
Length
121
10
Parcel Body Fields
Processor:
2 bytes
Row:
8 bytes
Fields
Processor identifies the location of the row.
Row identifies the row associated with the cursor.
CursorHost
Purpose
The CursorHost parcel returns to the server a cursor row identifier and request number that
returned the CursorDBC parcel.
Usage Notes
This parcel is generated by the application.
Parcel Data
The following table lists field information for CursorHost parcel.
Flavor
Field
Parcel
Body
Length
120
14
Parcel Body Fields
Processor:
2 bytes
Row:
8 bytes
Request
4 bytes
Fields
Processor identifies the location of the row.
Row identifies the row associated with the cursor.
Request specifies the request number associated with the CursorDBC parcel from which the
processor and row were obtained.
476
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 16: Parcels for Advanced Applications
Parcel Descriptions
Data
Purpose
The Data parcel sends data in Record Mode to the Teradata Database. The Data parcel follows
either a Req, IndicReq, or FMReq parcel that contains a USING modifier.
Usage Notes
This parcel is generated by CLI at the direction of the application.
Parcel Data
The following table lists field information for the Data parcel.
Flavor
Field
3
Parcel Body Length
Parcel Body Fields
1 to maximum
body size
Data: 1 to maximum body size bytes
Note: A maximum parcel body size of 65024 bytes is only approached with the Archive/
Recovery utility. The maximum size of a regular SQL parcel body is 64256 bytes, including
overhead such a presence bits and variable length columns.
Fields
The Data field contains a formatted record of data.
•
The order of the items and their data types and lengths are determined by the USING
modifier in the Teradata SQL statement.
•
The values of the items are represented in a client internal format for details. See Table 65
on page 424.
•
A null value is implicitly indicated by a specific value of the item and that value is not
necessarily unique to null. For explicit, unique indications of null values, use Indicator
Mode or Field Mode.
DataInfo
Purpose
Returns a description of the items within the Data Field of the corresponding Indicator Mode
Record parcels.
Usage Notes
DataInfo parcel is not returned if the statement was an ECHO statement. This parcel is
generated by the Teradata Database.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
477
Chapter 16: Parcels for Advanced Applications
Parcel Descriptions
Parcel Data
Parcel Body
Length
Flavor
71
6 to
maximum
body size
Parcel Body Fields
2 bytes
FieldCount:
Pair 1:
Data Type:
2 bytes
Length:
2 bytes
Data Type:
2 bytes
Length:
2 bytes
Data Type:
2 bytes
Length:
2 bytes
.
.
.
Pair i:
.
.
.
Pair n:
Field Notes
The following notes apply to the Fields for the DataInfo parcel.
•
The FieldCount, n, is the number of items within the Data Field in the corresponding
Indicator Mode Record parcels. It also is the number of data type and length pairs in this
DataInfo parcel.
•
The Pair fields contains a description of the data type and length of the corresponding data
item of the record parcel. That is, the ith pair of data type and length values in the
DataInfo parcel corresponds to the ith data item in the Data Field of the Indicator Mode
Record parcel. See Table 65 on page 424 for the possible data types.
•
If the data type of the ith data item is not decimal, then the length (maximum length
for VARBYTE and VARCHAR) of the ith data item in the Indicator Mode Record
parcel is represented in the DataInfo parcel as a 16-bit signed binary.
•
If the data type of the ith data item is decimal, then the total number of digits in the ith
data item in the Indicator Mode Record parcel is represented in the DataInfo parcel in
the first byte of the parcel body length as an 8-bit signed binary, and the number of
fractional digits is represented in the second byte of the parcel body length as an 8-bit
signed binary.
DataInfoX
Purpose
For MultipartIndicator mode responses, describes the data contained in subsequent
MultipartRecord parcels.
478
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 16: Parcels for Advanced Applications
Parcel Descriptions
Usage Notes
DataInfoX is not returned if the statement was ECHO.
Parcel Data
The following table lists field information for DataInfoX.
Parcel Body
Length
Flavor
146
6 to maximum
body size
Parcel Body Fields
2 bytes
FieldCount:
Pair 1:
Data Type:
2 bytes
Length:
2 bytes
Data Type:
2 bytes
Length:
2 bytes
Data Type:
2 bytes
Length:
2 bytes
.
.
.
Pair i:
.
.
.
Pair n:
Field Notes
The following notes apply to the Fields for the DataInfoX parcel.
•
The FieldCount, n, is the number of items within the Data Field in the corresponding
MultipartRecord parcels. It also is the number of data type and length pairs in this
DataInfoX parcel.
•
The Pair fields contains a description of the data type and length of the corresponding data
item of the multipartrecord parcel. That is, the ith pair of data type and length values in
the DataInfoX parcel corresponds to the ith data item in the Data Field of the
Multipartrecord parcel. See Table 65 on page 4241 for the possible data types.
•
If the data type of the ith data item is not decimal, then the length (maximum length
for VARBYTE and VARCHAR) of the ith data item in the Multipartrecord parcel is
represented in the DataInfoX parcel as a 64bit unsigned binary.
•
If the data type of the ith data item is decimal, then the total number of digits in the ith
data item in the Multipartrecord parcel is represented in the DataInfoX parcel in the
first 4 bytes of the parcel body length as a signed binary, and the number of fractional
digits is represented in the second 4 bytes of the parcel body length as a signed binary.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
479
Chapter 16: Parcels for Advanced Applications
Parcel Descriptions
EndMultipartData
Purpose
For MultipartIndicator mode requests when Use-presence was not requested, delimits data
associated with the SQL USING row descriptor.
Parcel Data
The following table lists field information for EndMultipartData.
Flavor
Parcel Body
Length
Parcel Body Fields
141
0
none
EndMultipartIndicData
Purpose
For MultipartIndicator mode requests when Use-presence was requested, delimits data
associated with the SQL USING row descriptor.
Parcel Data
The following table lists field information for EndMultipartIndicData.
Flavor
Parcel Body
Length
Parcel Body Fields
143
0
none
FMReq
Purpose
Initiates a request specified by one or more Teradata SQL statements and specifies that the
results are to be returned in Field Mode.
Usage Notes
If the Teradata SQL request contains a USING row descriptor, this parcel is to be followed by
a Data or IndicData parcel.
Parcel Data
This parcel is generated by CLIv2 at the direction of the application.
480
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 16: Parcels for Advanced Applications
Parcel Descriptions
Parcel Body
Length
Flavor
13
1 to
maximum
body size
Parcel Body Fields
ReqText
Field Notes
ReqText Field contains the Teradata SQL request string.
A request string can contain one or more Teradata SQL statements.
A single-statement request does not have to end with a semicolon.
However, if a request contains more than one statement, the statements must be separated by
semicolons and the last statement does not have to end with a semicolon.
The total length of a FMReq must include semicolons.
IndicData
Purpose
Sends data in Indicator Mode to the Teradata server.
Usage Notes
The IndicData parcel follows one of these parcels that contains a USING row descriptor:
•
Req
•
IndicReq
•
FMReq
This parcel is generated by CLIv2 at the direction of the application.
Parcel Data
The following information applies to the IndicData parcel.
Flavor
Parcel Body Length
Parcel Body Fields
68
2 to maximum body
size
NullIndicators:
(n+7)/8 bytes where n = the number of
items in the Data Field,
organized as:
bit 1, bit 2, . . . , bit i,. . . , bit n, unused bits
Data:
1 to maximum body size - ((n+7) / 8) bytes
organized as:
item 1, item2, . . . , item i,..., item n
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
481
Chapter 16: Parcels for Advanced Applications
Parcel Descriptions
Field Notes
The following notes apply to IndicData fields.
The NullIndicators Field contains one bit for each item in the Data Field, stored in the
minimum number of 8-bit bytes required to hold them, with the unused bits in the rightmost
byte set to zero.
Each bit is matched on a positional basis to an item in the Data Field (that is, the ith bit in the
NullIndicators Field corresponds to the ith item in the Data Field).
If a bit is...
Then the value of the corresponding data item is...
ON
null.
OFF
not null.
Whether the null indicator bit is ON or OFF, the length of the corresponding data item is
meaningful.
For example,
If the data item is to contain...
Then...
a variable length string
length portion of the data item is set to the actual length of
the string (which is zero if the data item represents a null
value).
an integer
the data item occupies four bytes (which will be zero if the
data item represents a null value).
The Data Field contains a formatted record of data:
The order of the items and their data types and lengths are determined by the USING row
descriptor in the Teradata SQL statement.
The values of the items are represented in client internal format. See Table 65 on page 424.
A null value is explicitly indicated by a null indicator bit, as explained above.
IndicReq
Purpose
Initiates a request composed of one or more Teradata SQL statements and specifies that the
results are to be returned in Indicator Mode.
Usage Notes
If the Teradata SQL request contains a USING row descriptor, this parcel is to be followed by
a Data or IndicData parcel.
This parcel is generated by CLIv2 at the direction of the application.
482
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 16: Parcels for Advanced Applications
Parcel Descriptions
Parcel Data
The following information applies to the IndicReq parcel.
Parcel Body
Length
Flavor
69
Parcel Body Fields
1 to maximum
body size
ReqText
Field Notes
ReqText contains the Teradata SQL request string.
A request string can contain one or more Teradata SQL statements.
A single-statement request does not have to end with a semicolon.
However, if a request contains more than one statement, the statements must be separated by
semicolons and the last statement does not have to end with a semicolon.
The total length of a IndicReq must include semicolons.
MultipartData
Purpose
For requests initiated in MultipartIndicator mode when Use-presence was not requested,
provides data associated with the SQL USING row descriptor.
Usage Notes
The MultipartData parcel follows a MultipartIndicatorRequest parcel that contains a USING
row descriptor.
This parcel is generated by CLIv2 at the direction of the application.
Parcel Data
The following table lists field information for MultipartData.
Flavor
140
Parcel Body
Length
1 to
maximum
body size
Parcel Body Fields
Data: 1 to maximum body size
Field Notes
The MultipartData Field contains a formatted record of data:
•
The order of the items and their data types and lengths are determined by the USING row
descriptor in the Teradata SQL statement.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
483
Chapter 16: Parcels for Advanced Applications
Parcel Descriptions
•
The values of the items are represented in a client internal format. See Table 65 on
page 424.
•
A null value is implicitly indicated by a specific value of the item (for details, see
“Manipulating Nulls” in SQL Fundamentals) and that value is not necessarily unique to
null. For explicit, unique indications of null values, use Indicator Mode or Field Mode.
MultipartIndicData
Purpose
For requests initiated in MultipartIndicator mode when Use-presence was requested, provides
data associated with the SQL USING row descriptor.
Usage Notes
The MultipartIndicData parcel follows either an IndicReq or MultipartIndicatorRequest
parcel that contains a USING row descriptor.
This parcel is generated by CLIv2 at the direction of the application.
Parcel Data
The content of the MultipartIndicData parcel is as follows.
Flavor
142
Parcel Body
Length
1 to
maximum
body size
MultipartIndicData Parcel Fields
Data: 1 to maximum body size bytes
Field Notes
The MultipartIndicData Field contains a formatted record of data:
•
The order of the items and their data types and lengths are determined by the USING row
descriptor in the Teradata SQL statement.
•
The values of the items are represented in a client internal format. See Table 65 on
page 424.
•
A null value is implicitly indicated by a specific value of the item (for details, see
“Manipulating Nulls” in SQL Fundamentals) and that value is not necessarily unique to
null. For explicit, unique indications of null values, use Indicator Mode or Field Mode.
MultipartRequest
Purpose
Initiates a request consisting of one or more SQL statements and indicates that the results are
to be returned in MultipartIndicator mode.
484
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 16: Parcels for Advanced Applications
Parcel Descriptions
Usage Notes
If the SQL request contains a USING row descriptor, then this parcel is followed by either one
or more MultipartData parcels and an EndMultipartData parcel, or one or more
MultipartIndicData parcels and an EndMultipartIndicData parcel.
Parcel Data
The content of the MultipartRequest parcel is as follows.
Flavor
148
Parcel Body
Length
1 to
maximum
body size
Parcel Body Fields
ReqText
ReqText is one or more SQL statements, each separated by a semicolon, the last ending with
an optional semicolon. The characters are in the current session character set.
Options
Specifies which statement options are used when a request is sent to the Teradata Database.
Usage Notes
The Options parcel is generated by CLIv2 at the direction of an application.
Parcel Data
The following information applies to the Options parcel.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
485
Chapter 16: Parcels for Advanced Applications
Parcel Descriptions
Flavor
Parcel Body
Length
Parcel Body Fields
85
10 or 11
RequestMode: 1 byte
Function: 1 byte
Select-data: 1 byte
Continued-characters-state: 1 byte
APH-response: 1 byte
Return-statement-info: 1 byte
TransformsOff: 1 byte
Maximum DECIMAL precision: 1 byte
(ignored if Field Response-mode)
IdentityColumnRetrieval: 1 byte
DynamicResultSets: 1 byte
If present, SP-ReturnResult: 1 byte
If present, PeriodAsStructs: 1 byte
If present, Extended-name Response: 1 byte
If present, Trusted-request 1 byte
Field Notes
The following information applies to Options fields.
•
RequestMode indicates which mode is used to process a response. The settings are as
follows:
•
F - specifies Field Mode
•
R - specifies Record Mode
•
I - specifies Indicator Mode
•
M - MultipartIndicator Mode
If this field contains a binary zero, the Teradata Database uses the mode specified
elsewhere (in the Req, IndicReq, or FMReq parcel) in the request.
When two or more parcels in a request specify conflicting modes, the Teradata Database
uses the mode specified in the Options parcel.
•
Function corresponds to the Request Processing Option field of the DBCAREA, and
indicates whether the intent is to prepare and execute, to prepare, or to execute the
request.
The settings are as follows:
486
•
E- specifies that the request should be executed.
•
A binary zero in this field is interpreted as an E.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 16: Parcels for Advanced Applications
Parcel Descriptions
•
•
P- specifies that a PrepInfo parcel is built for each statement in the request. The
statements may not contain parameterized SQL.
•
S- specifies that a PrepInfo parcel is built for each statement in the request. The
statements may contain parameterized SQL.
•
B- specifies that a PrepInfo parcel is built for each statement in the request and that the
request should be executed. The statements may contain parameterized SQL. This
setting is supported for both Indicator mode and Record mode. For SQL statements
that return no data, such as Insert, Update, Delete and DDL statements, an “empty”
PrepInfo parcel is returned. Empty means that the column count in the PreInfo parcel
is set to zero.
Select-data specifies the way data associated with a Large Object is returned, chosen as one
of the following EBCDIC characters:
•
I- if the actual data is to be returned in the initial response.
•
L- if a locator token associated with the data within the transaction is to be returned.
•
S- if a locator token associated with the data within the spool file is to be returned.
If the field contains a binary zero, a value of 'I' is assumed.
•
Continued-characters-state indicates whether character data crossing response parcels is
well-formed within each parcel or only when all relevant parcels are considered. This
option has effect only for MultipartIndicator response mode because only in that mode
may data cross parcel boundaries. If not applicable, the option is ignored.
The supported values are:
•
•
•
•
L- the default, specifies that character data crossing response parcels may be in the
locked shift state
•
U- specifies that character data crossing response parcels must be in the unlocked shift
state
APH-response indicates whether response parcels may use the alternate parcel header. The
supported values are:
•
Y- specifies that alternate parcel headers may be used in response parcels
•
Binary zero- the default, if alternate parcel headers may not be used in response parcels
Return-statement-info indicates whether response parcels may use the alternate parcel
header. The supported values are:
•
'Y' specifies that StatementInformation response parcels will be returned instead of
DataInfo[X] and PrepInfo[X] response parcels. This setting will be rejected if the
ResponseMode option specifies 'F' (Field mode).
•
'N', the default, if StatementInformation response parcels may not be used.
TransformsOff indicates whether SQL Structured User Defined Types (UDTs) are
transformed into their external data type or left as their constituent attributes. The
supported values are:
•
'N', the default, if Structured UDTs are transformed into their external type.
•
'Y' if Structured UDTs are not transformed.
When built by CLIv2, the value used is based on the DBCAREA Transforms-off option.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
487
Chapter 16: Parcels for Advanced Applications
Parcel Descriptions
•
•
•
•
•
Maximum DECIMAL precision indicates the precision of decimal data types in responses.
The supported values are:
•
a positive value up to a maximum obtained using the DBCHQE SQL-limits query.
•
binary zero, the default, if the client default, 15, is to be used.
IdentityColumnRetrieval indicates whether data is returned in response to an SQL Insert
operation when Identity columns are involved. The supported values are:
•
binary zero, the default, that no fields are returned.
•
'C' specifies that the values for any Identity columns are returned.
•
'R' specifies that the values for all fields in an inserted row that contains Identity
columns are returned.
DynamicResultSets indicates whether stored procedures may include the results of its SQL
requests in the response to the response to the SQL CALL statement invoking the
procedure. The supported values are:
•
'N', the default, if such results may not be included.
•
'Y' if such results may be included.
SP-ReturnResult indicates where the results of the associated request are to be returned.
The supported values are:
•
0, the default, if the results are returned to the stored procedure itself.
•
1, if the results are to be returned to the client.
•
2, if the results are to be returned to the CALLer of the stored procedure.
•
3, if the results are to be returned to both the stored procedure and the client.
•
4, if the results are to be returned to both the stored procedure and its CALLer.
Extended-name Response indicates whether varying-length column name, title, and
format information in existing response parcels (Field (flavor 18), PrepInfo[X] (flavors 86
and 126), StmtInfo (flavor 169)) can be longer than the existing maximum. The supported
values are:
•
0, the default, indicates varying-length column name, title, and format information in
existing response parcels cannot be longer than the existing maximum.
•
1 indicates varying-length column name, title, and format information in existing
response parcels can be longer than the existing maximum.
When built by CLIv2, the value used is based on the DBCAREA Column-info option.
•
PeriodsAsStructs indicates whether Period data types are treated as Structured UDTs and
supply or return information about the constituent attributes. The supported values are:
•
'N', the default, if Period data types are not transformed.
•
'Y' if Period data types are not transformed.
When built by CLIv2, the value used is based on the DBCAREA Period-as-Struct option.
•
Trusted-request indicates whether the request is trusted to use the Teradata SQL SET
QUERY_BAND='PROXYUSER=...' statement to change the session userid. The
supported values are:
•
488
'N', the default, indicates the request may not change the session userid.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 16: Parcels for Advanced Applications
Parcel Descriptions
•
'Y' indicates the request may change the session userid.
When built by CLIv2, the value used is based on the DBCAREA Trusted-request option.
Req
Purpose
Initiates a request composed of one or more Teradata SQL statements and specifies that the
results are to be returned in Record Mode.
Usage Notes
If the Teradata SQL request contains a USING row descriptor, then this parcel is to be
followed by a Data or IndicData parcel.
This parcel is generated by CLIv2 at the direction of the application
Parcel Data
The following information applies to the Req parcel.
Flavor
1
Parcel Body
Length
1 to maximum
body size
Parcel Body Fields
ReqText
Field Notes
ReqText contains the Teradata SQL request string. A request string can contain one or more
Teradata SQL statements.
A single-statement request does not have to end with a semicolon.
However, if a request contains more than one statement, the statements must be separated by
semicolons and the last statement does not have to end with a semicolon.
The total length of a Req parcel includes semicolons.
SP Options
Purpose
Provides options to be used when compiling the stored procedure.
Usage Notes
This parcel is provided by the application for the first or only segmented data request in the
Initiate Request DBCAREA extension.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
489
Chapter 16: Parcels for Advanced Applications
Parcel Descriptions
Parcel Data
Flavor
Parcel Body
Length
129
2
Parcel Body Fields
Print: 1 byte (unused)
SaveSPL: 1 byte
Field Notes
The SaveSPL field specifies whether the source text (DDL definition) of the stored procedure
is stored in the Teradata Database. An uppercase EBCDIC 'Y' indicates that they are saved. An
uppercase EBCDIC 'N' indicates that they are not.
StatementInformation Requests
Purpose
Describes the data items contained in the request when those attributes are not otherwise
known. If more data needs be returned than will fit into a single StatementInformation parcel,
multiple parcels may be provided.
Parcel Data
The following information applies to the StatementInformation parcel.
Flavor
169
Parcel Body
Length
6 to
maximum
parcel size
Parcel Body Fields
Self-defining extensions: Six or more bytes
One or more self-defining extensions are present to convey situation-dependent information.
While the extensions may require more than one StatementInformation parcel, an extension
will be wholly contained in one parcel. The extensions fall into two types: those that describe
one or more items and those with an Information Layout of End-information that end related
extensions of the first type.
Each extension begins with the following fields:
490
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 16: Parcels for Advanced Applications
Parcel Descriptions
Field
Length
Description
PBTILOUT
2-byte
unsigned
integer
Information Layout identifies the layout of the data following the
header, as one of the following:
1 Full-layout
2 Limited-layout
3 Statistic-layout. Used only in responses. For details, see
“StatementInformation Responses” on page 459.
4 End-information
5 Untransformed limited-layout
PBTIID
2-byte
unsigned
integer
Information Id identifies the type of extension. Used only in
responses.
1 Parameter - Used only when DBCAREA Request-processing-
option is 'S' (Prepare mode supporting parameterized SQL)
(corresponding to the Options parcel [flavor 85] Function 'S'
option).
2 Query
3 Summary
4 Identity-column
5 Stored-procedure-Output
6 Stored-procedure-resultSet
7 Estimated-processing
8 Data-attributes - Describes the data items contained in the
request when those attributes are not otherwise known.
For more information, see “StatementInformation Responses” on
page 459.
PBTILEN
2-byte
unsigned
integer
Information Length specifies the length of subsequent data in the
extension (does not include the length of the extension header).
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
491
Chapter 16: Parcels for Advanced Applications
Parcel Descriptions
Full-layout for Requests
The Full-layout is used for Data-attributes, when DBCAREA Request-processing-option is 'P'
(Prepare) or 'B' (Prepare and Execute) (corresponding to the Options parcel [flavor 85]
Function 'P', and 'B' options). Table 78 shows the Full-layout fields. Full-layout field not listed
in this table are used only in responses. For details, see “StatementInformation Responses” on
page 459.
Table 78: Full-layout Fields for Requests
Field
Length
Description
PBTIFDT
2-byte unsigned
integer
Specifies the data type of the item. In addition to the data types
available for the PrepInfo[X] (flavor 86 or 125) and DataInfo[X]
(flavor 71 or 146) parcels. See Table 65 on page 424 for the
possible data types. See Table 70 on page 465 for additional data
types that are also supported.
PBTIFMDL
8-byte unsigned
integer
The total number of bytes of data that might be sent for this
item.
PBTIFND
2-byte unsigned
integer
The total number of digits if the item has a decimal or numeric
data type.
PBTIFNID
2-byte unsigned
integer
The number of interval digits if the item is a temporal data type.
PBTIFNFD
2-byte unsigned
integer
The number of fractional digits if the item is a decimal data type
(or the deprecated temporal types such as time, timestamp,
interval ... to second, and interval second).
Note: While only five fields are honored, all full-layout fileds must be present. (See Table 69 on
page 461.) Fields with a two-byte length followed by text also of that length must be valid. That is,
the length must correspond to the number of bytes of text.
When at least one more byte is present, the first such byte is defined as follows:
Field
Length
Description
PBTIFTP
1-byte character
Set to one of the following EBCDIC characters:
• 'I' if the item is a stored-procedure IN parameter
• 'O' if the item is a stored-procedure OUT parameter
• B' if the item is a stored-procedure INOUT parameter
• 'U' if the item is not a stored-procedure parameter, or if the
information is unavailable
492
PBTILDOS
2 bytes
When Transforms are off for this type of item, the depth of this
attribute of the item's structure. A value of zero indicates the
item is not a structure or Transforms are not off. Other values
indicate the nesting level of the structure.
PBTIFTC
1-byte character
Used only in responses. See “StatementInformation Responses”
on page 459.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 16: Parcels for Advanced Applications
Parcel Descriptions
Field
Length
Description
PBTILUA
2 byte unsigned
integer plus the
number of bytes
specified by that
integer
When Transforms are off for this type of item, Untransformed
Attribute Name consists of the length in bytes of the name of
this attribute in the item's structure, followed by that name in
characters from the current session character set. If the item is
not a structure or Transforms are not off, the length is zero and
no name is present. The maximum length of a name may be
obtained using the DBCHQE SQL-limits query.
PBTILTDT
2 byte unsigned
integer
When Transforms are off for this type of item, specifies the data
type of the untransformed item. If the item is not a structure or
Transforms are not off, the value is zero. In addition to the data
types available for the PrepInfo[X] (flavor 86 or 125) and
DataInfo[X] (flavor 71 or 146) parcels, which are defined in
“Data Type” on page 424. Table 65 on page 424 conatins a list of
the possible data types. See Table 70 on page 465 for additional
data types that are also supported.
Limited-layout for Requests
The Limited-layout is used for Data-attributes when DBCAREA Request-processing-option is
'E' (Execute) (corresponding to the Options parcel (flavor 85) Function 'E' option). Table 79
describes the Limited-layout fields specific for requests.
Table 79: Limited-layout Fields for Requests
Field
Length
Description
PBTILDT
2 byte unsigned
integer
Specifies the data type of the item. In addition to the data types
available for the PrepInfo[X] (flavor 86 or 125) and DataInfo[X]
(flavor 71 or 146) parcels, which are defined in “Data Type” on
page 424. Table 65 on page 424 conatins a list of the possible data
types. See Table 70 on page 465 for additional data types that are
also supported.
PBTILMDL
8 byte unsigned
integer
The total number of bytes of data that might be sent for this item.
PBTILND
2 byte unsigned
integer
The total number of digits if the item has a decimal or numeric
data type.
PBTILNID
2 byte unsigned
integer
The number of interval digits if the item is a temporal data type.
PBTILNFD
2 byte unsigned
integer
The number of fractional digits if the item is a decimal data type
(or the deprecated temporal types such as time, timestamp,
interval ... to second, and interval second).
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
493
Chapter 16: Parcels for Advanced Applications
Parcel Descriptions
Untransformed limited-layout
The Untransformed limited-layout is used for Data-attributes when DBCAREA
Request-processing-option is 'E' (Execute) (corresponding to the Options parcel (flavor 85)
Function 'E' option). Table 79 describes the Untransformed limited-layoutt fields specific for
requests.
Table 80: Untransformed limited-layout Fields for Requests
Field
Length
Description
PBTIUDT
2 byte unsigned
integer
Specifies the data type of the item. In addition to the data types
available for the PrepInfo[X] (flavor 86 or 125) and DataInfo[X]
(flavor 71 or 146) parcels, which are defined in “Data Type” on
page 424. Table 65 on page 424 conatins a list of the possible data
types. See Table 70 on page 465 for additional data types that are
also supported.
PBTIUMDL
8 byte unsigned
integer
The total number of bytes of data that might be sent for this item.
PBTIUND
2 byte unsigned
integer
The total number of digits if the item has a decimal or numeric
data type.
PBTIUNID
2 byte unsigned
integer
The number of interval digits if the item is a temporal data type.
PBTIUNFD
2 byte unsigned
integer
The number of fractional digits if the item is a decimal data type
(or the deprecated temporal types such as time, timestamp,
interval ... to second, and interval second).
When at least one more byte is present, the first such additional is defined as follows:
Table 81: Untransformed imited-layout Fields for Requests
Field
Length
Description
PBTIUTDT
2 byte unsigned
integer
When Transforms are off for this type of item, specifies the data
type of the untransformed item. If the item is not a structure or
Transforms are not off, the value is zero. In addition to the data
types available for the PrepInfo[X] (flavor 86 or 125) and
DataInfo[X] (flavor 71 or 146) parcels, which are defined in
“Data Type” on page 424. See Table 70 on page 465 for additional
data types that are also supported.
End-information layout
The End-information layout indicates there are no more items for the current information
(Data-attibutes). No data exists for End-information.
494
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 16: Parcels for Advanced Applications
Parcel Descriptions
StatementInformationEnd Returns
Purpose
Indicates that no more StatementInformation parcels (flavor 169) exist.
Parcel Data
The following information applies to the StatementInformationEnd parcel.
Flavor
Parcel Body
Length
Parcel Body Fields
170
0
none
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
495
Chapter 16: Parcels for Advanced Applications
Parcel Descriptions
496
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
CHAPTER 17
Stored Procedures
This chapter describes:
•
Introduction
•
SQL Stored Procedures
•
External Stored Procedures
•
Dynamic Result Sets
Refer to SQL Stored Procedures and Embedded SQL for additional information on stored
procedures.
Introduction
You can store executable procedures in the Teradata Database and invoke them later using the
SQL CALL statement. There are two types of stored procedures:
•
SQL, consisting of statements written in the SQL Stored Procedure Language (SPL).
•
External, consisting of statements written in a standard programming language such as C,
C++, or Java, and able to call CLIv2.
SQL Stored Procedures
The application sends the statements composing a procedure to the database, where they are
compiled and saved for subsequent execution. The application that creates the procedure
must do the following:
1
Ascertain whether the Teradata Database supports stored procedures.
2
Send a request containing the procedure that could exceed the maximum parcel size.
3
Provide compilation options to the database.
To ascertain if the Teradata Database supports stored procedures, the CLIv2 Query service is
used to obtain the Maximum-Segment-Size. Based on the results returned by the Query
service, one of the following actions occurs:
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
497
Chapter 17: Stored Procedures
SQL Stored Procedures
If...
Then...
stored procedures are
not supported
the service will fail (return code 351).
are supported
a four-byte unsigned binary value is returned that indicates the maximum
size of a data segment (in bytes).
In such cases, if the size of the stored procedure exceeds this value, it must
be sent as multiple requests, each of which sends data no larger than this
value.
Send Procedure to Database
A stored procedure is sent to Teradata Database in one or more segments using either the
Initiate Request, or the Initiate With Protocol Function CLIv2 function.
The Maximum-Segment-Size CLIv2 query obtains the maximum size of each segment. Use of
segments is indicated by the CLIv2 Segment Data option (with the Change Options option set
to 'Y').
The application divides the text of the stored procedure into pieces no larger than the
Maximum-Segment-Size, and sends each piece as a separate request (the text may be divided
at any point). The first piece is identified using the Segment Data option as the first segment.
The last (or only) piece is identified as the last segment; all other pieces are identified as
intermediate segments.
When sending segments of a stored procedure, the maximum value for Request-length may
vary slightly with the version of the Teradata Database being used; the value may be obtained
using the DBCHQE CLIv2-limits query (or deprecated Maximum-segment-size query).
Response Processing
After each segment is sent, its response should be processed as usual for any CLIv2 request.
Depending on the response parcel, one of the following actions occurs:
If this response parcel is returned...
Then...
Failure
any previous segments have been discarded by the
database.
Error
any previous segments have been retained by the
database, and the failing request may be retried (if
possible).
Such retry is not possible if other segments were sent
before fetching the response containing the error.
498
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 17: Stored Procedures
SQL Stored Procedures
If this response parcel is returned...
Then...
Success (if Record, Indicator, or
MultipartIndicator Response-mode)
or OK (if Field Response-mode) when
using Original Statement-status; or
ResultSummary when using Enhanced
Statement-status.
the next segment can be sent
When all segments have been sent, the stored procedure is compiled, and any compilation
messages are returned. If the value of the Success, OK, or ResultSummary parcel Warning
Code field is 5527, then compilation was successful but warning messages were returned; if
the value is 5526, then compilation was not successful and error messages are returned. In
both cases, the Success, OK, or ResultSummary parcel Activity Count field indicates the
number of messages.
The format of the messages depends upon the CLIv2 Response Mode Option. For Field mode,
each message is treated as a separate row consisting of a single VARCHAR column. For
Record and Indicator modes, each message is in a separate Data parcel.
Abort, Cancel, and Restart Processing
Any time a segment request is active, the CLIv2 Abort function may be used to abort
processing. Any time a segment request is not active and before sending the last segment,
processing may be cancelled by setting the appropriate Segment Data option and initiating
another request (the Request Pointer and Request Length are ignored). The response from
such a cancellation will be a Failure parcel.
After the first segment has been successful, segmenting is active even after CLIv2 return codes
or Error parcels, and either must be completed normally, cancelled, or the session logged off.
If the database restarts, any segments that were received will be discarded and the next
segment sent will receive a Failure response.
Effects on Other Options
Use of Segment Data impacts the use of these other options:
•
the Keep Response option must be 'N'
•
the Request mode option must be 'P' (parcel mode)
•
the Request Processing option must be 'E' (execute request processing)
•
the 2PC option must be 'N' (no two-phase commit)
•
if the Initiate with Protocol Function function is used, the Initiate Protocol-function
option must be 'N' (because two-phase commit is not supported).
Other limitations also apply:
•
the character set for all segments is the character set of the first segment (changing the
character set between segments may result unexpected translation of segment data)
•
only one sequence of segments may be in use within one session at a time.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
499
Chapter 17: Stored Procedures
External Stored Procedures
To provide compilation options, an Initiate-Request extension to the DBCAREA must be
used to provide a Stored Procedure Options request parcel (flavor 129). This parcel must be
provided with the first segment.
For example, the following Assembler instructions (which assume use of the DBCAIRX
macro) initialize an extension providing a Stored Procedure Options request parcel that
would be addressed by the DBCAXP field in the DBCAREA when the first segment is sent:
MVC
XC
MVC
MVI
MVC
MVC
MVI
MVI
D8XIID(4),=A(D8XIIIRX) Set Eyecatcher
D8XINEXT(4),D8XINEXT
No more extensions
D8XISIZE(4),=A(D8XIHDSZ+D8XILMSZ+2) Ext. length
D8XILVL,D8XIL64
D8XILTYP(2),=H'129'
Parcel flavor
D8XILLEN(2),=Y(D8XILMSZ+2) Parcel length
D8XILDAT,C'P'
"PRINT" compile option
D8XILDAT+1,C'Y'
"SPL" compile option
Using the Procedure
To invoke a previously compiled and saved procedure, an SQL CALL statement is sent to the
Database.
External Stored Procedures
The application sends the statements composing a procedure to the Database, where they are
compiled and saved for subsequent execution. The application that defines the procedure
must send an SQL statement to create (CREATE PROCEDURE) or replace (REPLACE
PROCEDURE) the procedure.
If the Database does not support External Stored Procedures the SQL will be rejected (there is
no capability provided to ensure that the SQL is supported).
If it is supported, an ElicitFile response parcel will be returned, whereupon the application
uses the CLIv2 ContinueRequest function to send the procedure's statements to the Database.
When all statements have been sent, the procedure is compiled and saved on the Database.
The character set used for compilation is the character set used when the procedure is created
or replaced.
Using the Procedure
To invoke a previously compiled and saved procedure, an SQL CALL statement is sent to the
Database. When called, the procedure that was defined with the SQL READS SQL DATA or
WRITES SQL DATA clause may itself invoke CLIv2 to establish a connection and send SQL
requests. Such a connection may either be a new connection (a DBCAREA Use-default-conn
value of 'N'), for which a standard Database logon string would be supplied, or the connection
could use the same session used to CALL the procedure (a DBCAREA Use-default-conn value
of 'Y').
The latter is known as the default connection, and has some limitations. Specifically, the
character set used when the procedure is executed is the character set established when the
500
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 17: Stored Procedures
Dynamic Result Sets
procedure is created or replaced, not the character set being used when the CALL is sent. No
capability is provided for the procedure to ascertain this character set.
Also, the following options established by the application cannot be changed:
•
Date-form
•
Language-conformance
•
Statement-status
•
Transaction-semantics
•
2PC
No capability is provided for the procedure to ascertain the application's setting for these
options. Also, the default connection may not be disconnected.
The procedure may use the DBCAREA Return-result-to option to provide CLIv2 the same
information that would be provided by the WITH RETURN clause on the SQL PROCEDURE
statement for an SQL Stored Procedure. Specifically, whether the results for an SQL request
are returned to the requester, the caller of the procedure, or the application. If propagated to
the caller or application, the parcels are preceded by a ResultSet response parcel.
Dynamic Result Sets
Even if the procedure requests that the results of its SQL be reflected to the CALLer or the
application through the use of either the SQL PROCEDURE's WITH RETURN clause or the
DBCAREA Return-result-to option, a CLIv2 routine so targeted must allow these results
using the DBCAREA Result-sets-OK option. If this option was not specified, the results will
not be returned there.
When results are propagated, they appear in the response with an incremented statement
number after the statement that contained the SQL CALL. The statement number is
contained in both the first parcel for the implicit statement, either Success, OK,
ResultSummary; and the last parcel for the implicit statement: EndStatement. Such a Success,
OK, or ResultSummary parcel will also contain an ActivityType of 176. The next parcel will be
ResultSet, which identifies the procedure and provides the row number to which the
procedure positioned the results. Any response parcels follow the ResultSet.
The options for the request making the CALL and the request issued by the stored procedure
could differ: the response provided to the procedure, the caller, or the application would
reflect the request options that each established. So a response honors that request's
DBCAREA Return-objects-as, Continued-characters-state, APH-response-OK,
Return-statement-info, Max-decimal-returned, Return-identity-data options. If the
procedure specified the DBCAREA MultipartIndicator Response-mode and selects a Large
Object (LOB) but the CALLer or application specified a Response-mode that does not
support LOBs, the procedure will receive an error and no response will be propagated.
Similarly, the response provided to the procedure, the caller, or the application honors the
character set that each established. However, their collation is not. Instead, the collation used
for all responses is the collation that was used when the stored procedure was compiled.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
501
Chapter 17: Stored Procedures
Dynamic Result Sets
The procedure may use the DBCAREA Keep-response option to provide CLIv2 the same
information that would be provided by SCROLL or NO SCROLL on the SQL DECLARE
CURSOR statement for an SQL Stored Procedure. Specifically, a setting of 'Y' corresponds to
NO SCROLL, indicating the propagated results are positioned to the next unfetched row, with
fetched rows not propagated; a setting of 'P' corresponds to SCROLL, indicating the
propagated results are positioned to the last row fetched, with earlier fetched rows propagated
and available by explicit positioning using either the CLIv2 Fetch function specifying the
DBCAREA Positioning-action, or the CLIv2 Rewind function. The Success, OK, or
ResultSummary parcel ActivityCount field will indicate all available rows available, without
regard to initial positioning.
Unlike positioning of the returned row, the procedure cannot position the offset of a Large
Object (LOB) selected by locator. Any positioning by the procedure within the LOB is not
reflected.
502
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
CHAPTER 18
Resolver Base Module
This chapter describes how the Resolver Base Module (RBM) resolves 2PC (two-phase
commit) sessions that have in-doubt Teradata transactions. Topic include:
•
Using the Resolver Base Module
•
Request Parcel
•
Responses
Using the Resolver Base Module
To use the Resolver Base Module (RBM), you must be using Teradata Database for UNIX
version 2 release 2 (or later), or Teradata DBS for TOS version 1 release 5 (or later).
In-doubt transactions can be resolved the following ways:
•
CLIv2 program that accesses the RBM (information included in this section)
•
TDP commands (see Teradata Director Program Reference)
•
The TPCCONS utility on the operator‘s console (see the Utilities manual)
Accessing the Resolver Base Module
You can write a CLIv2 program that accesses the RBM when in-doubt transactions exist, so
that more of the recovery process is automated. To communicate with the RBM, you need to
log on to a special kind of session and use special kinds of request and response parcels. The
RBM does not accept Teradata SQL statements.
Note: All sequences and dialogs presented assume that Teradata semantics is being used.
Procedure
To log on to this special session, do the following:
1
Make sure you have the EXECUTE privilege on the TwoPCRule macro.
The Database Administrator (DBA) must grant EXECUTE privilege on the TwoPCRule
macro to all users who need to communicate with the RBM.
2
Use the correct logon string, which contains your userid and password.
3
Use the correct run pointer.
Set the run pointer to the address of the run string for the Run parcel (or the address of the
Connect parcel body) before calling DBCHCL for the Connect function.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
503
Chapter 18: Resolver Base Module
Request Parcel
4
Use the correct run string.
The partition name in the Run parcel or the Connect parcel should be RBM.
5
Use the correct Request parcel.
Use the Request parcel format shown on the next page to send requests to the Teradata
Database in a CLIv2 program.
6
Get the response.
To get the response, use the CLIv2 Fetch function. The responses for the RBM are
described in “Responses” on page 505.
Request Parcel
Teradata Database generates one or more parcels in response to a request it receives. It then
sends the Teradata SQL response in portions containing whole parcels. The number of parcels
in the portion is the maximum number that can fit in that request‘s response buffer. The RBM
does not accept Teradata SQL statements. It accepts only parcels in record mode.
Executing a Function
To execute a function, the RBM accepts a standard parcel sequence consisting of a request and
a respond (Resp or KeepResp) parcel. The module accepts only record mode parcels. Note,
however, that the mode is appropriate only when executing a list function. The sequence can
be generated using the Initiate Request function after setting the appropriate parameters in
DBCAREA. The length of the request string, and a pointer to it, are placed in DBCAREA
(Request Length and Request Pointer) prior to calling CLIv2.
Request String Format
The format of the request string is as follows:
String Element
Length
(bytes)
Description
Function Code
2
Indicates the operation to be performed.
Allowable values are as follows:
• 1 - Return a list of in-doubt Teradata transactions
• 2 - Commit all in-doubt Teradata transactions
• 3 - Commit in-doubt Teradata transactions in sessions specified in
session array
• 4 - Roll back all in-doubt Teradata transactions
• 5 - Roll back specified in-doubt Teradata transactions
• 6 - Return a list of coordinators
504
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 18: Resolver Base Module
Responses
String Element
Length
(bytes)
Logoff flag
1
Description
When set to binary 1, it indicates that the resolved sessions were to be
logged off.
Otherwise, set to binary zero.
Logical Host Id
2
Identifies the client submitting the request.
Coordinator
length
2
Indicates the number of bytes in the subsequent coordinator string.
Coordinator
30
max
Identifies the coordinator responsible for the in-doubt transactions
that are to be listed, committed, or rolled back.
Number of IDs
2
Indicates the number of session IDs in the Session ID array.
Session ID array
4 per
ID
Contain the TDP-assigned identifiers of the sessions that are to be
terminated.
The array is used with function codes 3 and 5 only.
For all other function codes, the array is empty.
Responses
The Teradata Database generates one or more parcels in response to a request it receives. It
then sends the Teradata SQL response in portions containing whole parcels. The number of
parcels in the portion is the maximum number that can fit in that request‘s response buffer.
Output Parcels
When using CLIv2, the Fetch function returns the output parcels. The output parcel sequence
is as follows:
•
Success or a Failure parcel:
•
If Failure is returned, the error code defines the reason for the failure. For example, if a
parcel is malformed, a failure response is generated.
•
If Success is returned, the activity count reports the number of transactions or
coordinators affected.
•
Record parcel (for requests that execute a list function)
•
EndStatement
•
EndRequest
The following sections describe the responses for each of the function codes in the Request
parcel shown on the previous page.
Response to Function Code 1 (List Transactions)
If in-doubt Teradata transactions are found, the Success parcel activity count indicates how
many transactions were found. The response includes one record parcel for each transaction.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
505
Chapter 18: Resolver Base Module
Responses
The record parcel includes the following:
Flavor
Field
Length
Field
Parcel Body Fields
10
11 to 40
SessionNo:
4 byte unsigned integer
StringLength:
2 byte unsigned integer
RunUnitID:
1 to 30 bytes
•
SessionNo is the session number assigned by the TDP to the session creating the
transaction. This session number has an implicit qualifier of the host identifier for the
TDP.
•
StringLength is the number of bytes in the RunUnitID.
•
RunUnitID is the run unit identifier assigned to the transaction by the vote request.
Response to Function Codes 2 and 4 (Terminate All)
The Success parcel activity count indicates the number of completed Teradata transactions.
Response to Function Codes 3 and 5 (Terminate Some)
The Success parcel activity count indicates the number of terminated Teradata transactions. If
a specified session either is not found or does not have an in-doubt transaction, then a failure
parcel will be returned and no action will be taken on any sessions.
Response to Function Code 6 (List Coordinators)
The response will include one record parcel for each coordinator that has in-doubt sessions
on the Teradata Database. The record parcel includes:
506
Flavor
Field
Length
Field
Parcel Body Fields
10
7 to 36
StringLength:
2 bytes
CoordinatorID:
1 to 30 bytes
•
StringLength is a 2-byte field that contains the length of the bytes that follow in
CoordinatorID.
•
CoordinatorID (30 bytes maximum) identifies the coordinator responsible for the
in-doubt transactions.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
CHAPTER 19
2PC Protocol
This chapter describes the 2PC (two-phase commit) protocol, including:
•
Sync Point Services
•
Enabling 2PC Protocol
•
Starting 2PC Sessions
•
Using Coordinators to Synchronize Processing
•
The 2PC Process
•
In-Doubt Resolution
•
CLIv2 Application Requirements for 2PC
Introduction
If you use CICS or IMS applications to update both the Teradata Database and any other
recoverable resource or database within the same logical unit of work, consider using the 2PC
(two-phase commit) protocol. 2PC is available only for the following releases of the Teradata
Database:
•
Teradata Database for UNIX, version 2 release 2 (or later)
•
Teradata DBS for TOS, version 1 release 5 (or later).
If you attempt to use the 2PC mode in an unsupported environment, CLIv2 rejects the
attempt with the return code of “CLI0200 TWO PHASE COMMIT OPTION REQUIRES A
COORDINATOR.” ANSI environments do not support 2PC.
When you do not use the 2PC protocol, an application is subject to failure windows that can
leave the databases in an inconsistent or indeterminate state. The 2PC protocol eliminates
those failure windows.
For information on how the Teradata Database participates in the 2PC protocol, see the
Database Administration manual or the Database Design manual.
Sync Point Services
With 2PC, the CICS or IMS applications can access the Teradata Database as a sync point
participant. In this way, Teradata Database updates are committed or rolled back through the
use of CICS or IMS sync point services. The use of the sync point services guarantees that all
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
507
Chapter 19: 2PC Protocol
Enabling 2PC Protocol
updates performed within a logical unit of work will either all commit or all roll back. The
Teradata Database and the CICS or IMS Attachment Facilities support the sync point
manager and its use of the 2PC protocol. In the 2PC protocol, CICS or IMS act as the
coordinator, and the Teradata Databases act as participants.
Note: 2PC applications must use a coordinator such as IMS or CICS. They cannot run as
batch applications.
Enabling 2PC Protocol
The CLIv2 application specifies whether it is operating in 2PC mode or non-2PC mode at
connect time. To initiate the protocol for a session, the application can perform either of the
following actions:
•
Set a field option in DBCAREA and execute a CLIv2 Connect function in the individual
application
•
Set a 2PC mode default for all applications through the HSHSPB
A CLIv2 application can set the DBCAREA field for the CLIv2 Connect directly.
For more information on setting the 2PC field for the Connect function, see “DBCHCL” on
page 244. There is no limit to the number of sessions running in either mode, other than the
maximum number allowed for the system.
To use this option as the default mode...
Specify this setting in IBO2PC in the system
parameter block (HSHSPB)...
2PC
Y
non-2PC
N
If a protocol (2PC or non-2PC) is set in the DBCAREA, the HSHSPB protocol setting is
ignored.
Starting 2PC Sessions
CLIv2 applications logging on any sessions to the Teradata Database can request that either a
single session or multiple sessions be established. All the 2PC sessions established by an
application are considered part of the same commit-and-recovery unit. (Note that an
application can have separate non-2PC sessions.) Individual 2PC sessions can log on using the
Connect function DBO2PC option (values are Y or N).
An existing 2PC session can use the IRQ (Initiate Request) or IWPF (Initiate With Protocol
Function) to initiate a request. The IWPF function is similar to the Initiate Request function,
except that the Locate mode is not supported and optional 2PC optimizations can be used.
Session pools can be started from the TDP. To establish a session pool that is in 2PC mode,
508
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 19: 2PC Protocol
Using Coordinators to Synchronize Processing
use the TDP command, START POOL, with the TWOPC keyword. The TDP will start a pool
that contains only 2PC sessions.
For more information on using session pools with 2PC, see the Teradata Director Program
Reference.
Using Coordinators to Synchronize Processing
The following three main components are involved with 2PC protocol:
•
CLIv2 application
•
Participants (the databases)
•
Coordinator (IMS or CICS)
An application using the 2PC protocol must establish a 2PC session, initiate requests, and
manage sync point processing. The actual synchronization is handled by the coordinator.
When work is to be synchronized, the application requests that the coordinator communicate
with the other participants to complete the synchronization. Teradata provides
coordinator-participant communications services, not the actual coordinators. The internal
communications services (Coordinator-Participant Interface, or CPI) are provided as
extensions to CLIv2.
The 2PC Process
In a successful database update in a 2PC session, there are several critical events that take place
in the following order:
1
The application reads or updates (or both) the participant databases.
2
Once all database accesses in the logical unit of work have completed successfully, the
application directs the coordinator to commit the updates.
3
The coordinator sends a prepare to commit request to all participants.
4
If the participant can commit the work, it externalizes its journal entries, retains any write
locks obtained in the logical unit of work, and responds affirmatively to the coordinator‘s
prepare to commit request.
5
The coordinator collects all the responses to the prepare to commit request and, if all are
affirmative, enters the commit phase and sends commit requests to all participants.
6
The participants irrevocably commit the updates and release the write locks.
7
The participants respond to the coordinator‘s commit request with a confirmation that
the commit has been successfully completed.
8
The application receives control at the statement following its commit request from step 2,
above.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
509
Chapter 19: 2PC Protocol
In-Doubt Resolution
In-Doubt Resolution
If there is a site or communication failure (for example, a power failure, operating system
error, or telecommunication failure) during the process just described, there are different
recovery actions, depending on the step at which the failure occurred.
If the failure occurs at this
point in the 2PC process...
Then the participant...
before step 4
rolls back the updates.
during step 6
after the participant has received and logged the coordinator‘s
commit request, the participant continues with the commit process.
after step 4, but before step 6
is said to be in-doubt as to whether it should commit or roll back
the updates, so it cannot take any unilateral action.
The participant must wait for in-doubt resolution to complete the
transaction.
There are two forms of in-doubt resolution: automatic and manual.
They are explained later in further detail.
Automatic In-Doubt Resolution
After a failure in either the coordinator or any participants, automatic in-doubt resolution is
accomplished when the communication between the coordinator and the participants is
reestablished. When the interface to the participants is started using /START SUBSYS (for
IMS) or DAFC START (for CICS), the participants’ logs are presented to the coordinator. For
each in-doubt logical unit of work, the coordinator informs the participants whether the
updates should be committed or rolled back, based on information recorded in the
coordinator log.
Manual In-Doubt Resolution
When automatic in-doubt resolution is unavailable or unsuccessful, it may be necessary to
manually resolve the in-doubt sessions. This is because the in-doubt sessions could be holding
locks on database objects that block the progress of other work that is executing against that
Teradata Database.
Warning:
Incorrect use of manual in-doubt resolution can damage the database.
You can use any of the following interfaces to accomplish manual in-doubt resolution:
510
•
The TDP commands DISPLAY INDOUBT, COMMIT, and ROLLBACK
•
The TPCCONS utility on the operator‘s console
•
A CLIv2 program to log on to the Resolver Base Module (RBM) with the CLIv2 Run
parcel and resolving the sessions using the TPCCONS commands
•
Using CLIv2 applications to issue TDP commands using the CMD function (for more
information on the CMD function, see “DBCHCL” on page 244.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Chapter 19: 2PC Protocol
CLIv2 Application Requirements for 2PC
For more information on 2PC in-doubt resolution, see the following documents:
•
IBM CICS Interface for Teradata Reference
•
IIBM IMS/DC Interface for Teradata Reference
•
IBM Database 2 V1 R1-CICS/VS Interface Guide, document number GG24-1632-00, from
IBM
•
IBM Database 2 V1 R1-IMS/VS Interface Guide, document number GG24-1637-00, from
IBM
CLIv2 Application Requirements for 2PC
The following requirements apply to CLIv2 applications that use the 2PC protocol:
•
The application must establish a 2PC session, initiate requests, and use the coordinator‘s
sync point facilities to commit the updates rather than issue direct commands to the
participant.
•
Any connection used for 2PC requests must be specified as a 2PC connection.
For example, you can use the CON function‘s 2PC option in the DBCAREA or set the 2PC
default in the HSHSPB.
•
An END TRANSACTION statement must have a corresponding BEGIN TRANSACTION
preceding it. For applications in 2PC mode, both of these commands can be used only in
inner nested transactions.
•
The application must use CICS/VS or IMS/VS syncpoint processing to commit or abort
the transaction (not END TRANSACTION, ROLLBACK WORK, COMMIT WORK, or
ABORT).
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
511
Chapter 19: 2PC Protocol
CLIv2 Application Requirements for 2PC
512
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
APPENDIX A
How to Read Syntax Diagrams
This appendix describes the rules that apply to the syntax diagrams used in this book.
Syntax Diagram Conventions
Notation Conventions
Item
Definition / Comments
Letter
An uppercase or lowercase alphabetic character ranging from A through Z.
Number
A digit ranging from 0 through 9.
Do not use commas when typing a number with more than 3 digits.
Word
Variables and reserved words.
• UPPERCASE LETTERS represent a keyword.
Syntax diagrams show all keywords in uppercase, unless operating system
restrictions require them to be in lowercase.
• lowercase letters represent a keyword that you must type in lowercase, such as a
UNIX command.
• lowercase italic letters represent a variable such as a column or table name.
Substitute the variable with a proper value.
• lowercase bold letters represent a variable that is defined immediately
following the diagram that contains the variable.
• UNDERLINED LETTERS represent the default value.
This applies to both uppercase and lowercase words.
Spaces
Use one space between items such as keywords or variables.
Punctuation
Type all punctuation exactly as it appears in the diagram.
Paths
The main path along the syntax diagram begins at the left with a keyword, and proceeds, left
to right, to the vertical bar, which marks the end of the diagram. Paths that do not have an
arrow or a vertical bar only show portions of the syntax.
The only part of a path that reads from right to left is a loop.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
513
Appendix A: How to Read Syntax Diagrams
Syntax Diagram Conventions
Continuation Links
Paths that are too long for one line use continuation links. Continuation links are circled
letters indicating the beginning and end of a link:
A
A
FE0CA002
When you see a circled letter in a syntax diagram, go to the corresponding circled letter and
continue reading.
Required Entries
Required entries appear on the main path:
SHOW
FE0CA003
If you can choose from more than one entry, the choices appear vertically, in a stack. The first
entry appears on the main path:
SHOW
CONTROLS
VERSIONS
FE0CA005
Optional Entries
You may choose to include or disregard optional entries. Optional entries appear below the
main path:
SHOW
CONTROLS
FE0CA004
If you can optionally choose from more than one entry, all the choices appear below the main
path:
514
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Appendix A: How to Read Syntax Diagrams
Syntax Diagram Conventions
READ
SHARE
ACCESS
JC01A010
Some commands and statements treat one of the optional choices as a default value. This
value is UNDERLINED. It is presumed to be selected if you type the command or statement
without specifying one of the options.
Strings
Strings appear in single quotes:
'msgtext'
JC01A004
If the string text includes a single quote or a blank space, the string appears in double quotes:
''abc'd"
''abc d"
JC01A005
Abbreviations
If a keyword or a reserved word has a valid abbreviation, the unabbreviated form always
appears on the main path. The shortest valid abbreviation appears beneath.
SHOW
CONTROLS
CONTROL
FE0CA042
In the above syntax, the following formats are valid:
•
SHOW CONTROLS
•
SHOW CONTROL
Loops
A loop is an entry or a group of entries that you can repeat one or more times. Syntax
diagrams show loops as a return path above the main path, over the item or items that you can
repeat:
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
515
Appendix A: How to Read Syntax Diagrams
Syntax Diagram Conventions
,
,
(
cname
3
4
)
JC01B012
Read loops from right to left.
The following conventions apply to loops:
Loop Convention
Description
A maximum number of entries is
allowed.
The number appears in a circle on the return path.
A minimum number of entries is
required.
The number appears in a square on the return path.
A separator character is required
between entries.
The character appears on the return path.
In the example, you may type cname a maximum of 4 times.
In the example, you must type at least three groups of column
names.
If the diagram does not show a separator character, use one
blank space.
In the example, the separator character is a comma.
A delimiter character is required
around entries.
The beginning and end characters appear outside the return
path.
Generally, a space is not needed between delimiter characters
and entries.
In the example, the delimiter characters are the left and right
parentheses.
Excerpts
Sometimes a piece of a syntax phrase is too large to fit into the diagram. Such a phrase is
indicated by a break in the path, marked by (|) terminators on either side of the break. The
name for the excerpted piece appears between the terminators in boldface type.
516
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Appendix A: How to Read Syntax Diagrams
Syntax Diagram Conventions
The boldface excerpt name and the excerpted phrase appears immediately after the main
diagram. The excerpted phrase starts and ends with a plain horizontal line:
LOCKING
excerpt
A
A
HAVING
con
excerpt
where_cond
,
cname
,
col_pos
JC01A014
Multiple Legitimate Phrases
In a syntax diagram, it is possible for any number of phrases to be legitimate:
dbname
DATABASE
tname
TABLE
vname
VIEW
JC01A016
In this example, any of the following phrases are legitimate:
•
dbname
•
DATABASE dbname
•
tname
•
TABLE tname
•
vname
•
VIEW vname
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
517
Appendix A: How to Read Syntax Diagrams
Syntax Diagram Conventions
Sample Syntax Diagram
,
viewname
CREATE VIEW
AS
cname
CV
A
LOCKING
LOCK
ACCESS
dbname
A
DATABASE
SHARE
FOR
IN
tname
READ
TABLE
WRITE
EXCLUSIVE
vname
VIEW
EXCL
,
B
SEL
B
MODE
expr
,
FROM
tname
qual_cond
C
.aname
C
HAVING cond
;
qual_cond
,
WHERE cond
GROUP BY
cname
,
col_pos
JC01A018
Diagram Identifier
The alphanumeric string that appears in the lower right corner of every diagram is an internal
identifier used to catalog the diagram. The text never refers to this string.
518
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Glossary
A
abend Abnormal end of task. Termination of a task prior to its completion because of an
error condition that cannot be resolved by the recovery facilities during execution.
account The distinct portion of a system account string, excluding the performance group
designation. Accounts can be employed wherever a user object can be specified.
administrator
AP
A special user responsible for allocating resources to a community of users.
Application Processor
ANSI American National Standards Institute. ANSI maintains a standard for SQL. For
information about Teradata compliance with ANSI SQL, see SQL Fundamentals.
API Application Program Interface, which is a set of calling conventions by which an
application accesses an operating system and other services. An API is defined in the source
code and provides a level of abstraction between an application and the kernel (or other
privileged utilities) to ensure the portability of the code.
An API can also provide an interface between a high-level language and lower-level utilities
and services written without consideration for the calling conventions supported by compiled
languages. In this case, the API can translate the parameter lists from one format to another
and the interpret call-by-value and call-by-reference arguments in one or both directions.
APRC
Application Processor Reset Containment
ASCII American Standard Code for Information Interchange, a character set used primarily
on personal computers.
B
BLOB Binary large object, which is a large database object (up to 2 GB) that doesn‘t require
character set conversion, including MIDI, MP3, PDF, graphics, and more.
C
Call-Level Interface Version 2 (CLIv2) A collection of callable service routines that provide
an interface between an application and the MTDP (for network-attached clients) or TDP
(for channel-attached). CLI builds parcels that are sent to Teradata Database and provides the
application with a pointer to each of the parcels returned from Teradata Database.
CASE Computer-Aided Software Engineering
channel-attached A mainframe computer that communicates with a server (for example,
Teradata Database) through a channel driver.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
519
Glossary
character set A grouping of alphanumeric and special characters used by computer systems
to support user languages and applications. Various character sets have been codified by the
American National Standards Institute (ANSI).
CICS
Customer Information Control System
client
A computer that can access the Teradata Database.
CLIv2so Call-Level Interface Version 2 Shared Object, which is the program that installs the
CLI libraries required by other utilities. When CLIv2so submits a request to Teradata
Database, CLI Library components transform the request into Teradata Database formats.
The CLI Library sends requests to, and receives responses from, Teradata Database over a
network.
CLOB Character large object, which is a large character-based (such as HTML, RTF)
database object up to 2 GB.
COBOL
Common Business-Oriented Language
column In the relational model of Teradata SQL, databases consist of one or more tables. In
turn, each table consists of fields, organized into one or more columns by zero or more rows.
All of the fields of a given column share the same attributes.
CPU
Central processing unit
D
database A related set of tables that share a common space allocation and owner. A
collection of objects that provide a logical grouping for information. The objects include
tables, views, macros, triggers, and stored procedures.
Data Definition Language (DDL) In Teradata SQL, the statements and facilities that
manipulate database structures (such as CREATE, MODIFY, DROP, GRANT, REVOKE, and
GIVE) and the Data Dictionary information kept about those structures.
DBA
Database administrator
DDL Data definition language, which supports manipulating database structures and the
Data Dictionary information kept about these structures.
delimiter In Teradata SQL, a punctuation mark or other special symbol that separates
clauses in a Teradata SQL statement or separates one Teradata SQL statement from another.
EBCDIC Extended binary coded decimal interchange code, which is an IBM code that uses
8 bits to represent 256 possible characters. It is used primarily in IBM mainframes, whereas
personal computers use ASCII.
EUC Extended UNIX Code. For Japanese and Traditional-Chinese, EUC defines a set of
encoding rules that can support from 1 to 4 character sets.
extract The copying of a subset of data from a source to a target environment.
520
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Glossary
exit routine Specifies a predefined action to be performed whenever certain significant
events occur during a job.
F
field The basic unit of information stored in Teradata Database. A field is either null, or has
a single numeric or string value.
FIPS
Federal Information Processing Standards
I
IPT
I/Os per transaction
in-doubt A transaction in process on two or more independent computer processing
systems when an interruption of service occurs on one or more of the systems. The
transaction is said to be in doubt because it is not known whether the transaction is
successfully processed on all of the systems.
I/O Input/output
ISO International Standards Organization
J
JCL Job Control Language is a language for describing jobs (units of work) to z/OS and VSE
operating systems (OSs), which run on IBM z800/900 large server (mainframe) computers.
These OSs allocate their time and space resources among the total number of jobs started in a
computer. Jobs then break down into job steps. All the statements required to run a particular
program constitute a job step. Jobs are background (sometimes called batch) units of work
that run without user interaction (for example, print jobs). The OS manages interactive
(foreground) user requests that initiate units of work. In general, foreground work is given
priority over background work.
JIS Japanese Industrial Standards specify the standards for industrial activities in Japan. The
standardization process is published through Japanese Standards Association.
L
LOB Large object, which is a database object that is up to 2 gigabytes. LOBs can be
character-based (CLOBs) or binary-based (BLOBs).
log A file that records events. Many programs produce log files. Log files can help determine
what happened during an processing failure. Log files have the extension “.log”.
M
macro A file that is created and stored on Teradata Database, and executed in response to a
Teradata SQL EXECUTE statement
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
521
Glossary
MTDP Micro Teradata Director Program, which is a library of routines that implement the
session layer on the workstation. MTDP is the interface between CLI and Teradata Database.
MPP Massively parallel processing
MVS (Multiple Virtual Storage) One of the primary operating systems for large IBM
computers.
N
name A word supplied by a user that refers to an object, such as a column, database, macro,
table, user, or view.
null
The absence of a value for a field.
P
parameter A variable name in a macro for which an argument value is substituted when the
macro is executed.
physical action A basic action type, such as <Send a Page>, <Send an E-Mail>, etc. Physical
actions must be encapsulated by logical actions in order to be used in an alert policy.
procedure Short name for Teradata stored procedure. Teradata provides Stored Procedural
Language (SPL) to create stored procedures. A stored procedure contains SQL to access data
from within Teradata and SPL to control the execution of the SQL.
protocol The rules for the format, sequence, and relative timing of messages exchanged on a
network.
R
request In host software, a message sent from an application program to the Teradata
Database.
result The information returned to a user to satisfy a request made of the Teradata
Database.
row Whether null or not, a row represents one entry under each column in a table. The row
is the smallest unit of information operated on by data manipulation statements.
S
server A computer system running Teradata Database. Typically, a Teradata Database
server has multiple nodes, which can include both TPA and non-TPA nodes. All nodes of the
server are connected via the Teradata BYNET or other similar interconnect.
session A session begins when a user logs on to Teradata Database and ends when the user
logs off. Also called a Teradata Database session.
SMP
522
Symmetric multi-processing
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Glossary
statement A request for processing by Teradata Database that consists of a keyword verb,
optional phrases, and operands, and that is processed as a single entity.
statistics The details of a process used to collect, analyze, and transform the database objects
used by a given query.
stored procedure A combination of SQL statements and control and conditional handling
statements that run using a single call statement.
T
table A set of one or more columns with zero or more rows that consist of fields of related
information.
TCP/IP
Transmission Control Protocol/Internet Protocol.
TDPID Teradata Director Program Identifier, which is the name of the Teradata Database
being accessed.
TDP Teradata Director Program, which provides a high-performance interface for
messages communicated between the client and the Teradata system.
test system A Teradata Database where you want to import Optimizer-specific information
to emulate a target system and create new queries or test new features.
title In Teradata SQL, a string used as a column heading in a report. By default, the title is
the column name, but a title can also be explicitly declared by a TITLE phrase.
TPA
Trusted parallel application
TOS
Teradata operating system
transaction A set of Teradata SQL statements performed as a unit. Either all of the
statements are executed normally, or else any changes made during the transaction are backed
out and the remainder of the statements in the transaction are not executed. Teradata
Database supports both ANSI and Teradata transaction semantics.
trigger One or more Teradata SQL statements associated with a table and executed when
specified conditions are met.
two-phase commit The process by which a relational database ensures that distributed
transactions are performed in an orderly manner. Transactions are terminated by either
committing them or rolling them back.
type An attribute of a column that specifies the representation of data values for fields in
that column. Teradata SQL data types include numerics and strings.
U
UDF
User-defined functions
Unicode A fixed-width (16 bits) encoding of virtually all characters present in all languages
in the world.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
523
Glossary
user In Teradata SQL, a database associated with a person who uses Teradata Database. The
database stores the person‘s private information and accesses other Teradata Databases.
user A database associated with a person who uses Teradata Database. The database stores
the person‘s private information and accesses other Teradata Databases.
UTF-8 In simple terms, UTF-8 is an 8 bit encoding of 16 bit Unicode to achieve an
international character representation.
In more technical terms, in UTF-8, characters are encoded using sequences of 1 to 6 octets.
The only octet of a sequence of one has the higher-order bit set to 0, the remaining 7 bits are
used to encode the character value. UTF-8 uses all bits of an octet, but has the quality of
preserving the full US-ASCII range. The UTF-8 encoding of Unicode and UCS avoids the
problems of fixed-length Unicode encodings because an ASCII file encoded in UTF is exactly
same as the original ASCII file and all non-ASCII characters are guaranteed to have the most
significant bit set (bit 0x80). This means that normal tools for text searching work as expected.
UTF-16
A 16-bit Unicode translation format.
V
varbyte A data type that represents a variable-length binary string.
varchar A data type that represents a variable-length non-numeric character.
vargraphic
A data type that represents a variable-length string of characters.
view An alternate way of organizing and presenting information in Teradata Database. A
view, like a table, has rows and columns; however, the rows and columns of a view are not
directly stored by Teradata Database, rather they are derived from the rows and columns of
tables (or other views).
Z
z/OS
One of the primary operating systems for large IBM computers.
z/VM (Virtual Machine)
524
One of the primary operating systems for large IBM computers.
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Index
Numerics
2PC 207
Coordinator’s Participant Interface
defined 509
field 207
in-doubt resolution 510
session, starting Connect function 508
using in CLIv2 application 507
A
Abort function 63, 263
summary of uses 240
abort, crash-related 371
ABT function. See Abort function
access rights
security considerations 30
Anticipated Number of Concurrent Sessions field 73
Assembler. See IBM Assembler
authorization
security considerations 30
B
be 47
Buffer, request. See Request buffer
Buffer, response. See Response buffer
C
C2S Conversion field 87, 167
Call Level Interface version 2. See CLIv2
Call routine, DBCHCL 244
Change Options field 75
Parcel Mode Fetch 131
processing options 76
setting 49
using 49
change_opts 75
Character Set Pointer field 78
Cleanup routine 271
CLI routine
DBCHCL 244
DBCHCLN 271
DBCHINI 242
optional
summary of uses 273
summary of uses 240
CLI0200, return code 507
CMD function. See Command function
COBOL
DBCAREA-0-REQ-ID 127
DBCAREA-CHANGE-OPTS 75
DBCAREA-CUR-REQ-BUF-LEN 84, 87
DBCAREA-CUR-RESP-BUF-LEN 87
DBCAREA-EYECATCHER 93
DBCAREA-FET-DATA-PTR 94
DBCAREA-FET-MAX-DATA-LEN 95
DBCAREA-FET-PARCEL-FLAVOR 96
DBCAREA-FET-RET-DATA-LEN 97
DBCAREA-HSISVC-TIME 168
DBCAREA-I-REQ-ID 101
DBCAREA-IWPF-FUNCTION 135
DBCAREA-KEEP-RESP 103
DBCAREA-LOC-MODE 107, 108
DBCAREA-LOGON-LEN 109
DBCAREA-LOGON-PTR 110
DBCAREA-MAX-NUM-SESS 73
DBCAREA-MSG-LEN 123
DBCAREA-MSG-TEXT 123
DBCAREA-O-DBCPATH 128
DBCAREA-O-DBC-SESS-ID 129
DBCAREA-O-HOST-ID 128
DBCAREA-OPEN-REQS 125
DBCAREA-PARCEL-MODE 130
DBCAREA-REQ-BUF-LEN 137
DBCAREA-REQ-LEN 138
DBCAREA-REQ-PROC-OPT 143
DBCAREA-REQ-PTR 142
DBCAREA-RESP-BUF-LEN 146
DBCAREA-RUN-LEN 156
DBCAREA-RUN-PTR 158
DBCAREA-SESS-STATUS 164
DBCAREA-SET-CHAR-SET 165, 175, 176, 177, 178
DBCAREA-TOTAL-LEN 180
DBCAREA-TWO-PHASE-COMMIT 207
Code
error 53, 367
failure 53, 367
return 53, 54
Command function 260
summary of uses 240
CON function. See Connect function
Connect function
ReturnCode address 247
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
525
Index
summary of uses 240
Connect Type field 81
Coordinator’s Participant Interface 509
Country Id 84
changing 85
CPI. See Coordinator’s Participant Interface
Crash 369
CRQ 240
cur_req_buf_len 84, 87
cur_resp_buf_len 87
Current Request Buffer Length field 86
Current Response Buffer Length field 87
D
Data parcel 477
data structures, supported 32
Data type
indicator mode 441, 453
IndicData parcel 482
internal format 35
record mode 454
DataInfo parcel
ECHO statement 429, 477
Date Form field 89
DB02FBU 183
DBC/SQL, partition 33
DBCACNX 230
DBCAID 93
DBCAIRX 209, 229
logical sections 209
DBCAIRXC 230
DBCAIRXH 229, 230
DBCAIRXP 230
DBCAREA 67
allocating 243
as data structure 47
DBCHINI and 242
extension
C definitions for 229
COBOL definitions for 229, 230
IBM Assembler definitions for 229, 230
PL/I definitions for 229, 230
Field Descriptions 67
logical sections 67
multi-session 48
multi-thread 48
preparing to use 47
using 48
DBCAREA.H
change_opts 75
charset_type 165, 175, 176, 177, 178
cur_req_buf_len 84, 87
cur_resp_buf_len 87
526
dbcLevel 107
eyecatcher 93
fet_data_ptr 94
fet_parcel_flavor 96
fet_ret_data_len 97
hsisvc_time 168
i_req_id 101
iwpf_function 135
keep_resp 103
loc_mode 108
logon_len 109
logon_ptr 110
max_num_sess 73
msg_len 123
msg_text 123
o_dbc_sess_id 129
o_dbcpath 128
o_host_id 128
o_req_id 127
open_reqs 125
parcel_mode 130
req_buf_len 137
req_proc_opt 143
req_ptr 142
req-len 138
resp_buf_len 146
run_len 156
run_ptr 158
sess_status 164
tell_about_crash 170
total_len 180
two_phase_commit 207
two_resp_bufs 183
x_elm_type 215
DBCAREA-CHANGE-OPTS 75
DBCAREA-CUR-REQ-BUF-LEN 84, 87
DBCAREA-CUR-RESP-BUF-LEN 87
DBCAREA-EYECATCHER 93
DBCAREA-FET-DATA-PTR 94
DBCAREA-FET-MAX-DATA-LEN 95
DBCAREA-FET-PARCEL-FLAVOR 96
DBCAREA-FET-RET-DATA-LEN 97
DBCAREAH 229
DBCAREA-HSISVC-TIME 168
DBCAREA-I-REQ-ID 101
DBCAREA-KEEP-RESP 103
DBCAREA-LOC-MODE 107, 108
DBCAREA-LOGON-LEN 109
DBCAREA-LOGON-PTR 110
DBCAREA-MAX-NUM-SESS 73
DBCAREA-MSG-LEN 123
DBCAREA-MSG-TEXT 123
DBCAREA-O-DBC-SESS-ID 129
DBCAREA-O-HOST-ID 128
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Index
DBCAREA-O-PATH 128
DBCAREA-OPEN-REQS 125
DBCAREA-O-REQ-ID 127
DBCAREAP 229
DBCAREA-PARCEL-MODE 130
DBCAREA-REQ-BUF-LEN 137
DBCAREA-REQ-LEN 138
DBCAREA-REQ-PROC-OPT 143
DBCAREA-REQ-PTR 142
DBCAREA-RESP-BUF-LEN 146
DBCAREA-RUN-LEN 156
DBCAREA-RUN-PTR 158
DBCAREA-SESS-STATUS 164
DBCAREA-TOTAL-LEN 180
DBCAREA-TWO-PHASE-COMMIT 207
DBCHCL 244
multi-session 42
return code 245
summary of uses 240
Wait For Response 245
DBCHCL Functions
CMD 260
CON 247
DSC 270
ERQ 267
FET 265
IRQ 252
IWPF 255
REW 269
RSUP 250
DBCHCLN 271
alternate name for 271
summary of uses 240
DBCHCN. See DBCHCLN
DBCHIN. See DBCHINI
DBCHINI 67
alternate name for 242
initializing DBCAREA 242
return code 244
summary of uses 240
Total Length field 242
DBCHME
summary of parameters 274
summary of uses 273
DBCHMEC
Master event control block routine 276, 278
summary of parameters 274
summary of uses 273
DBCHPE. See DBCHPEC
DBCHPEC
alternate name for 279
post ECB routine 279
summary of parameters 274
summary of uses 273
DBCHQE
context area 289
query environment 289
return code 289
DBCHQEP
C definitions for 230, 231
COBOL definitions for 230, 231
IBM Assembler definitions for 230, 231
PL/I definitions for 230, 231
DBCHQEPC 229, 230, 231
DBCHQEPH 230, 231
DBCHQEPP 230, 231
DBCHSA. See DBCHSAD
DBCHSAD
alternate name for 280
return code 280
summary of parameters 275
summary of uses 273
DBCHUEC
return code 281, 283
summary of parameters 275
summary of uses 274
user provided ECB 281, 283
UserECB address 281, 283
DBCHUEPC 231
DBCHUEPH 231
DBCHUEPP 231
DBCHWAT
alternate name for 284
multi-session 42
return code 284
summary of parameters 275
uses 274
DBCHWL
summary of parameters 275
DBCHWT. See DBCHWAT
DBCIFBRL 146
DBCIRBRL 137
DBCISMAX 73
DBCMSG 124
DBCMSGL 123
DBCMSGRD 156
DBCNILSL 109
DBCNILSP 110
DBCNIRSL 156
DBCNIRSP 158
DBCOFBLA 84, 87
DBCOFLG1 164
DBCOREQN 127
DBCOSID 128
DBCOSILH 128
DBCOSISN 129
DBCOSITM 128
DBCOSITV 128
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
527
Index
DBCSIZE 180
DBCTSTMP 168
DBFIWPF, 2PC and 508
DBFOPFLV 96
DBFXFDP 94
DBOBSYW 203
DBOBTPM 130
DBOCRSW 201, 202
DBOCRTL 170
DBOFLOC 107, 108
DBOFUNT 143
DBOKRSP 103
DBOSCSP 165, 175, 176, 177, 178
DBOSETO 75
DBRIPF 135
DBRIRQL 138
DBRIRQP 142
DBROREQC 125
Describing User-defined Character Sets 407
Disconnect function 64, 270
summary of uses 240
DSC function. See Disconnect function
E
ECHO statement
DataInfo parcel 429, 477
PrepInfo parcel 444, 447
record mode 454
Record parcel 454
Element Length field
DBCAIRX 215
Element Type field and 215
Element Type field
DBCAIRX 215
Element Length field and 215
Pointer Element Address field and 212
Pointer Element Length field and 213
ElicitData parcel
LOBs 38
ElicitName parcel
LOBs 38
End Request function 267
summary of uses 240
EndRequest parcel
indicator mode 347
EndStatement parcel
indicator mode 347
Environment query. See DBCHQE
ERQ function. See End Request function
Error code 367
Error parcel 244, 435
KeepResp parcel and 435
Resp parcel and 435
528
response sequence 364
Event control block (ECB)
master routine. See DBCHME
master routine. See DBCHMEC
post routine. See DBCHPEC
user provided. See DBCHUEC
Extension Pointer field 92
DBCAIRX and 209
Extensions, DBCAREA 209
Eyecatcher field
DBCAIRX 216
DBCAREA 93
F
Failure code 53, 367
Failure parcel 244
logging on and 350
response sequence 364
session control 350
FET function. See Fetch function
fet_data_ptr 94
fet_max_data_len 95
fet_parcel_flavor 96
fet_ret_data_len 97
Fetch Data Pointer field 93
Fetch Returned Date Length 98
locate mode, relation to 109
Fetch function 60, 265
summary of uses 240
Fetch Maximum Data Length field 95
locate mode, relation to 109
Fetch Parcel Flavor field 96
locate mode, relation to 109
Fetch Returned Data Length field 97
locate mode 109
Variable Length Fetch
relation to 197
Fields in DBCAIRX
Data Address 212
Data Length 213
Element Length 215
Element Type 215
Eyecatcher 216
Next Pointer 218
Total Length 219
Total Size 220
Fields in DBCAREA
2PC 207
C2S conversion 87
change options 75
character set pointer 78
connect type 81
current request buffer length 86
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Index
current response buffer length 87
date form 89
extension pointer 92
eyecatcher 93
fetch data pointer 93
fetch maximum data length 95
fetch parcel flavor 96
fetch returned data length 97
function 98
input CLIv2 request id 100
input CLIv2 session id 100
keep response 102
locate mode 108
logon length 109
logon pointer 110
Max-decimal-returned 113
maximum parcel 114
message length 123
message text 123
open requests 124
output CLIv2 request id 127
output DBC session id 129
output host id 128
output TDP path 128
parcel mode fetch 130
protocol-function 135
request buffer length 137
request length 138
request mode 139
request pointer 142
request processing option 143
Request-token 145
response buffer length 145
response mode 146
return code 149
return time 154
route description codes 156
run length 156
run pointer 158
S2C conversion 167
Save Response Buffer 159
Segment Data 160
Session Status 164
Set Character Set 165
TDP request number 169
TDP-receipt-timestamp 168
TDPWAIT Time 171
tell about crash 170, 371
Time1-status 174
Time2-status 175
Time3 172
Time3-status 176
Time4 171, 173
Time4-status 177
Time5 174
Time5-status 178
total length 180
Transaction Semantics 180
Two Response Buffers 183
Use Presence Bits 186
Using Data Length 189
Using Data Pointer field 190
Variable Length Fetch 196
Variable Length Request 198
wait across crash 201, 371
wait for response 203, 371
fields in DBCAREA 67
Finding Files on the Release Tape
DBCAIRX 229
DBCHMEP 230
DBCHQER 231
DBCHUEP 231
HSHSPB 231
format, data
IBM mainframe, internal 35
Function
abbreviations 67
Abort 240, 263
Command 240, 260
Connect 240, 247
Disconnect 240, 270
End Request 240, 267
Fetch 240, 265
Initiate Request 240, 252
IWPF 240, 255
Rewind 240, 269
RunStartUp 240, 250
Function field 98
H
HSHSPB 33
defaults 49
MVS 233
VM 233
hsisvc_time 168
I
i_req_id 101
IBM Assembler 47
DBCAID 93
DBCIFBRL 146
DBCIRBRL 137
DBCISMAX 73
DBCMSG 124
DBCMSGL 123
DBCMSGRD 156
DBCNILSL 109
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
529
Index
DBCNILSP 110
DBCNIRSL 156
DBCNIRSP 158
DBCOFBLA 84, 87
DBCOREQ 127
DBCOSID 128
DBCOSILH 128
DBCOSITM 128
DBCOSITV 128
DBCOTSS1 175
DBCOTSS2 176
DBCOTSS3 176
DBCOTSS4 177
DBCOTSS5 178
DBCPSOSN 129
DBCSIZE 180
DBCTSTMP 168
DBFIPACT 132
DBFIPSNM 134
DBFIPVAL 134
DBFOPFLV 96
DBFXFDP 94
DBO2FBU 183
DBO2PC 207
DBOBSYW 203
DBOBTPM 130
DBOCRSW 201, 202
DBOCRTL 170
DBOFLOC 107, 108
DBOFUNT 143
DBOKRSP 103
DBOSCSP 165
DBOSETO 75
DBRIPF 135
DBRIRQL 138
DBRIRQP 142
DBROREQC 125
DNCOFLG1 164
MVS 128
VM 128
implied waiting 47
Indicator mode 440, 452
DataInfo parcel 441, 453
null indicator 440, 452
Response parcel 440, 452
response sequence 348
SELECT statement and 441, 453
IndicData parcel, data type 482
In-doubt resolution, 2PC 510
Initialize routine, DBCHINI 242
Initiate Request function 59, 252
summary of uses 240
Initiate With Protocol-Function
summary of uses 240
530
Initiate With Protocol-Function function 255
Input CLIv2 Request Id field 100
Output CLIv2 Request Id 127
Input CLIv2 Session Id field 100
Output Field Id 126
Input TDP Path field 101
INSERT statement 38
internal format
data type 35
mainframe 35
IRQ function. See Initiate Request function
ISO 3166-1
Country Id 84
ISO 639
Language Id standard 105
IWPF function. See Initiate With Protocol-Function
iwpf_function 135
K
Keep Response field 102
keep_resp 103
KeepResp parcel
Error parcel, relation to 435
L
Language
message module names 413
variant
specify with Country Id 84
Language Id
described 105
LANG and Country keywords 415
large objects 38
Level 107
loc_mode 107, 108
Locate Mode field 108
Fetch Maximum Data Length, relation to 96
logical structure 30
Logon
unsuccessful
Error parcel 350
Failure parcel 350
Logon Length field 109
Logon pointer field 110
logon_len 109
logon_ptr 110
LOGON-LEN 109
M
Macro
message definition 415
mainframe
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Index
format, internal 35
max_num_sess 73
Maximum Parcel field 114
Message Definition
file described 232, 413
macro described 415
message definitions 33
Message Length field 123
Message modules 413
Message Text field 123
Move area 341
msg_len 123
msg_text 123
multi-session management
concurrent requests 42
DBCHCL 42
DBCHWAT 42
N
Next Pointer field
DBCAIRX 218
NullField parcel 441
O
o_dbc_sess_id 129
o_host_id 128
o-dbcpath 128
onzero 53
Open Requests field 124
Keep Response 104
open_reqs 125
operation, parallel 40
o-req-id 127
Output CLIv2 Request Id field 127
Input CLIv2 Request Id, relation to 101
Output CLIv2 Session Id field
Input CLIv2 Session Id, relation to 100
Output DBC Session Id field 129
Output Session Id, relation to 126
Output Host Id 128
Output TDP Path 126
field 128
P
Parcel
body 420
Data 477
Error 364, 435
Failure 364
flavor 419
header 419
NullField 441
overview 419
Record 439, 450, 451
Request 420, 473
Resolver Base Module 503
Response 421
sequence 364
structure 471
type 419, 420, 473
Parcel Mode Fetch field 130
Fetch Maximum Data Length, relation to 96
Fetch Parcel Flavor, relation to 97
locate mode, relation to 108
wait for response, relation to 203
parcel_mode 130
partition
DBC/SQL 33
performance monitor 33
Resolver Base Module 33
password, expiration 57
passwords
security considerations 30
PL/I
CHANGE_OPTS 75
CUR_REQ_BUF_LEN 84, 87
CUR_RESP_BUF_LEN 87
EYECATCHER 93
FET_DATA_PTR 94
FET_MAX_DATA_LEN 95
FET_PARCEL_FLAVOR 96
FET_RET_DATA_LEN 97
HSISVC Time 168
I_REQ_ID 101
IWPF_FUNCTION 135
KEEP_RESP 103
LOC_MODE 107, 108
LOGON_LEN 109
LOGON_PTR 110
MAX_NUM_SESS 73
MSG_LEN 123
MSG_TEXT 123
O_DBC_SESS_ID 129
O_DBCPATH 128
O_HOST_ID 128
O_REQ_ID 127
OPEN_REQS 125
PARCEL_MODE 130
REQ_BUF_LEN 137
REQ_LEN 138
REQ_PROC_OPT 143
REQ_PTR 142
RESP_BUF_LEN 146
RUN_LEN 156
RUN_PTR 158
SESS_STATUS 164
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
531
Index
SET_CHAR_SET 165, 175, 176, 177, 178
TELL_ABOUT_CRASH 170
TOTAL_LEN 180
TWO_PHASE_COMMIT 207
TWO_RESP_BUFS 183
Pointer Element Address field
DBCAIRX 212
Pointer Element Length field, DBCAIRX 213
Positioning-action 132, 133
PrepInfo parcel, ECHO statement 444, 447
preprocessors 30
prerequisites 47
product version numbers 3
Protocol-Function field 135
R
Record mode
data type 454
ECHO statement 454
null 454
requests
issuing 355
Response parcel 440, 452, 454
response sequence 345
Record parcel 439, 450, 451
ECHO statement 454
indicator mode. See Indicator mode
Record Parcel, Record mode. See Record mode
release tape
C files 229
COBOL files 229
IBM assembler files 229
PL/I files 229
z/OS and z/VM 233
Release Tapes
DBCAREA 229
req_buf_len 137
req_len 138
req_proc_opt 143
req_ptr 142
request
concurrent 42
multiple, managing 40
multi-statement 40
Teradata SQL, submitting 59
Request buffer
Current Request Buffer Length field 339
Request Buffer Length field 339
Request Buffer Length 137
Request Length field 138
Request Mode 140
Request mode 139
Request Pointer field 142
532
Request Processing Option 143
Request-token field 145
Resolver Base Module
parcel 503
partition 33
Resp parcel
Error parcel, relation to 435
resp_buf_len 146
Response
sequence 342, 504, 505
indicator mode 348
Record mode 345
Response buffer
Current Response Buffer Length field 341
Keep Response field 340
Response Buffer Length field 341
Two Response Buffers field 340
Wait For Response field 341
Response Mode 146
Response parcel, overview 421
Return code 53
2PC 507
busy 245
CLI0200 507
DBCHCL 54
DBCHWAT 54
Fetch Returned Data Length field 54
timing 54
Return Code field 149
relation to Message Text 123
Return Time field 154
HSISVC Time 169
SRBSCHED Time 174
TDPDBI Time 173
TDPDBO Time 172
TDPWAIT Time 171
TDPXMM Time 173
ReturnCode address
Connect function 247
DBCHCL 245
REW function. See Rewind function
Rewind function 62, 269
summary of uses 240
Route Description Codes field 156
Routine 239
DBCHCL 244
DBCHCLN 271
DBCHMEC 273
DBCHPEC 273
DBCHSAD 273
DBCHUEC 274
DBCHWAT 274
optional
summary of uses 273
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
Index
parameters 241
summary of uses 240
RSUP function. See RunStartUp function
Run Length field 156
run pointer field 158
run_len 156
run_ptr 158
RunStartUp function 57, 250
summary of uses 240
S
Save Response Buffer
field
Variable Length Fetch 159
security considerations 29
Segment Data
option described 160
SELECT statement 38
sess_status 164
Session
establishing 55
terminating 64
Session control
Failure parcel 350
Session pool, 2PC 509
session status 164
Set Character Set 165
software releases
supported 3
SP Options parcel
described 489
SPB. See System Parameter Block
Spool file
Keep Response field 104
maintaining 341
Statement
INSERT 38
SELECT 38
Status session 164
stored procedures
described 497
Success parcel
indicator mode 347
System Parameter Block
HSHSPB 233
system parameter block
HSHSPB 33
T
TDP
relationship to Teradata Database 30
TDP command, issuing 260, 510
TDP Request Number field 169
TDP-receipt-timestamp 168
TDPXMM Time 173
Tell About Crash field
Wait Across Crash, relation to 202
tell about crash field 170
Teradata server
communicating with 33
Teradata SQL
response sequence 364
Teradata SQL statement
INSERT 38
SELECT 38
Time1 171
Time3 field 172
Time4 171
Time5 field 174
Total Length
field
DBCAIRX 219
DBCAREA 180
Total Size field, DBCAIRX 220
total_len 180
Transaction Semantics 180
Two Response Buffers field 183
Response Buffer Length field, relation 146
two_phase_commit 207
U
Use Presence Bits field 186
Using Data Length 191
Using Data Pointer 192, 195
Variable Length Request 200
Using Data Length 189
Use Presence Bits, relation to 187
Using Data Pointer 190
Use Presence Bits 187
V
Variable Length Fetch 196
Fetch Maximum Data Length 96
Variable Length Request 198
field
Request Mode 140
setting 51
Using Data Length 192
Using Data length 190, 194
version numbers 3
W
Wait Across Crash field 201
wait across crash field
tell about crash, relation to 170
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems
533
Index
Wait For Response
field 164, 203
DBCHME 276
option 47
534
Teradata Call-Level Interface Version 2 Reference for Channel-Attached Systems