Teradata FastLoad Reference - Teradata

Transcription

Teradata FastLoad Reference - Teradata
Teradata FastLoad
Reference
Release 14.10
B035-2411-082K
March 2013
The product or products described in this book are licensed products of Teradata Corporation or its affiliates.
Teradata, Active Enterprise Intelligence, Applications-Within, Aprimo, Aprimo Marketing Studio, Aster, BYNET, Claraview, DecisionCast, Gridscale,
MyCommerce, Raising Intelligence, Smarter. Faster. Wins., SQL-MapReduce, Teradata Decision Experts, "Teradata Labs" logo, "Teradata Raising
Intelligence" logo, Teradata ServiceConnect, Teradata Source Experts, "Teradata The Best Decision Possible" logo, The Best Decision Possible,
WebAnalyst, and Xkoto are trademarks or registered trademarks of Teradata Corporation or its affiliates in the United States and other countries.
Adaptec and SCSISelect are trademarks or registered trademarks of Adaptec, Inc.
AMD Opteron and Opteron are trademarks of Advanced Micro Devices, Inc.
Apache, Apache Hadoop, Hadoop, and the yellow elephant logo are either registered trademarks or trademarks of the Apache Software Foundation
in the United States and/or other countries.
Axeda is a registered trademark of Axeda Corporation. Axeda Agents, Axeda Applications, Axeda Policy Manager, Axeda Enterprise, Axeda Access,
Axeda Software Management, Axeda Service, Axeda ServiceLink, and Firewall-Friendly are trademarks and Maximum Results and Maximum
Support are servicemarks of Axeda Corporation.
Data Domain, EMC, PowerPath, SRDF, and Symmetrix are registered trademarks of EMC Corporation.
GoldenGate is a trademark of Oracle.
Hewlett-Packard and HP are registered trademarks of Hewlett-Packard Company.
Hortonworks, the Hortonworks logo and other Hortonworks trademarks are trademarks of Hortonworks Inc. in the United States and other
countries.
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 is a registered trademark 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.
NetVault is a trademark or registered trademark of Quest Software, Inc. in the United States and/or other countries.
Novell and SUSE are registered trademarks of Novell, Inc., in the United States and other countries.
Oracle, Java, and Solaris are registered trademarks of Oracle and/or its affiliates.
QLogic and SANbox are trademarks or registered trademarks of QLogic Corporation.
Red Hat is a trademark of Red Hat, Inc., registered in the U.S. and other countries. Used under license.
SAS and SAS/C are trademarks or registered trademarks of SAS Institute Inc.
SPARC is a registered trademark of SPARC International, Inc.
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 registered trademark of Unicode, Inc. in the United States and other countries.
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 email: 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 © 1998-2013 by Teradata Corporation. All Rights Reserved.
Preface
Purpose
This book provides information about Teradata FastLoad (FastLoad), which is a Teradata®
Tools and Utilities product. Teradata Tools and Utilities is a group of products designed to
work with Teradata Database.
Teradata FastLoad is a command-driven utility that quickly loads large amounts of data to
empty tables in a Teradata Database. FastLoad uses multiple sessions to load data; however, it
loads data into only one table on a Teradata Database per job.
Audience
This book is intended for use by:
•
System and application programmers
•
System administrators
Supported Releases
This book supports the following releases:
•
Teradata Database 14.10
•
Teradata Tools and Utilities 14.10
•
Teradata FastLoad 14.10
Note: See “SHOW VERSIONS” on page 165 to verify the Teradata FastLoad version
number.
For the most current information about supported releases, do the following:
1
Go to http://www.info.teradata.com/.
2
Click General Search under Online Publications.
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 Platforms and Product
Versions (B035-3119) spreadsheet associated with this release.
Teradata FastLoad Reference
3
Preface
Prerequisites
The spreadsheet includes supported Teradata Database versions, platforms, and product
release numbers.
Prerequisites
The following prerequisite knowledge is required for this product:
•
Familiarity with computer technology, relational database management systems, and
utilities that load and retrieve data
•
Teradata SQL
•
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 Teradata Tools
and Utilities Release Definition (B035-2029) associated with this release.
Date and Release
Description
March 2013
• All instances of “channel-attached” were changed to
“mainframe-attached.”
• Teradata FastLoad supports VARTEXT on z/OS. See “SET RECORD” on
page 154.
• Teradata FastLoad supports temporal syntaxes prefixed in DELETE/DEL
statements.
• Text in “Mainframe-Attached Runtime Parameters” on page 35 was
corrected.
• Teradata FastLoad supports enhanced statement status (8-byte activity
count).
• The SET RECORD VARTEXT command line parameter should start
with a .(dot). See “Syntax Notes” on page 87.
Teradata Tools and
Utilities 14.10
• Two limitations for loading rows into normalized tables were
documented in “Restrictions and Limitations” on page 62.
• FastLoad provides an user option to retry on CLI 207 during logon. See
“Programming Considerations” on page 52.
• Teradata FastLoad no longer has a problem with the INMOD command
when the PATH has a space. See “DEFINE” on page 97.
• Teradata FastLoad now uses DBS UDFs that will return a list of retryable
and restartable errors.
• Added Chapter 4: “Troubleshooting.”
4
Teradata FastLoad Reference
Preface
Additional Information
Date and Release
Description
• If multi-byte characters are used in object names in a Teradata FastLoad
script, they must be enclosed in double quotes.
• Teradata FastLoad Notify Exits now support DBS Extended Object
Name (EON) functionality. See “Teradata FastLoad/Notify Exit Routine
Interface” on page 68 and Appendix C: “INMOD and Notify Exit
Routine Examples.”
• If the length of the data item name is greater than 120 characters, the
DBS will truncate the data item name to the length of 120 characters.
• References to Replication Services updated in Glossary.
• FastLoad supports the new DBS 14.10 "HELP TABLE" and "HELP
SESSION" logic for Extended Object Names.
Additional Information
Additional information that supports this product and Teradata Tools and Utilities is available
at the web sites listed in the following table.
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 Type 2029 in the Publication Product ID box.
Late information
Teradata FastLoad Reference
2 Click General Search under Online Publications.
4 Click Search.
5 Select the appropriate Release Definition from
the search results.
5
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 Click Data Warehousing under Online
Publications, Browse by Category.
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.
Specific books related to Teradata FastLoad are as
follows:
• Introduction to Teradata (B035-1091)
• Database Administration (B035-1093)
• Database Design (B035-1094)
• Messages (B035-1096)
• Security Administration (B035-1100)
• Utilities (B035-1102)
• International Character Set Support (B035-1132)
• SQL Fundamentals (B035-1141)
• SQL Data Types and Literals (B035-1143)
• SQL Data Definition Language (B035-1144)
• SQL Data Manipulation Language (B035-1146)
• SQL External Routine Programming (B035-1147)
• Teradata Tools and Utilities Command
Summary (B035-2401)
• Basic Teradata Query Reference (B035-2414)
• Teradata Call-Level Interface Version 2 Reference
for Mainframe-Attached Systems (B035-2417)
• Teradata Call-Level Interface Version 2 Reference
for Network-Attached Systems (B035-2418)
• Teradata Tools and Utilities Access Module
Programmer Guide (B035-2424)
• Teradata Tools and Utilities Access Module
Reference (B035-2425)
• Teradata Dynamic Workload Manager User
Guide (B035-2513)
CD-ROM images
6
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 Click Data Warehousing under Online
Publications, Browse by Category.
3 Click CD-ROM Images.
Teradata FastLoad Reference
Preface
Additional Information
Type of Information
Description
Access to Information
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 Click How to Order under Print & CD
Publications.
3 Follow the ordering instructions.
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
Teradata FastLoad Reference
7
Preface
Additional Information
8
Teradata FastLoad Reference
Table of Contents
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3
Purpose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3
Audience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3
Supported Releases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3
Prerequisites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4
Changes to This Book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4
Additional Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5
Chapter 1:
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Teradata FastLoad Utility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
What It Does. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
17
18
18
Operating Features and Capabilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Operating Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Character Sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Data Transfer Capabilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Data Conversion Capabilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Checkpoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Input Data Formats. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Formatted Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Unformatted Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Binary Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Text Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Variable-length Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Unsupported Data Sets and Tapes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
21
22
22
23
24
24
Teradata FastLoad Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Teradata FastLoad Command Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Teradata SQL Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Teradata FastLoad Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Teradata FastLoad Reference
9
Table of Contents
Chapter 2:
Using Teradata FastLoad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33
Invoking Teradata FastLoad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33
File Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33
Interactive Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34
Batch Mode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34
Mainframe-Attached Runtime Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35
Network-Attached Runtime Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .39
z/OS Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .46
UNIX and Windows Examples. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47
Terminating Teradata FastLoad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47
Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47
Normal Termination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48
Abort Termination. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48
Restart a Paused Teradata FastLoad Job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49
After a Client System or Teradata FastLoad Failure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49
After a Database Overfill Condition. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .50
After a Teradata Database Failure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .50
After an Unrecoverable Error Condition. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .50
Restart Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .51
Programming Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .52
Teradata FastLoad Configuration File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .52
Character Set Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .55
Unicode® Character Sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57
ANSI/SQL DateTime Specifications. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57
Checkpoint Tradeoffs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .58
Checkpoint Support with Access Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .58
Comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .58
Concurrent Load Utility Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .59
Data Conversion Factors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .59
Error Limits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .60
Nonunique Index Sorts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .60
Duplicate Rows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .60
Range Constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .60
Record Mode Load Anomaly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61
UNIX Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61
Restrictions and Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .62
Loading No Primary Index Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .63
Conventions for Quotes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .63
INMOD and Notify Exit Routines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .64
10
Teradata FastLoad Reference
Table of Contents
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Programming Considerations for Routines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Programming Structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Addressing Mode on z/OS Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Teradata FastLoad/INMOD Routine Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Teradata FastLoad/Notify Exit Routine Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Teradata FastLoad Sample INMOD Routines. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Creating Custom INMOD Routines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
64
64
65
66
66
68
70
72
Teradata FastLoad Job Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Enter Teradata FastLoad Commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Teradata FastLoad Job Script Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
72
73
73
73
Run Multifile Teradata FastLoad Jobs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Initiate the Teradata FastLoad Job and Loading the First Data Source . . . . . . . . . . . . . .
Restart the Teradata FastLoad Job and Loading the Second Data Source . . . . . . . . . . . .
Restart the Teradata FastLoad Job and Loading the Third Data Source. . . . . . . . . . . . . .
Terminate the Teradata FastLoad Job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Command Functions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
75
75
76
76
76
76
Handling Teradata FastLoad Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Teradata FastLoad Error Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Error Recording . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Error Table Formats. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Correcting Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Procedure for Correcting Errors in the First Error Table. . . . . . . . . . . . . . . . . . . . . . . . . .
Procedure for Correcting Errors in the Second Error Table . . . . . . . . . . . . . . . . . . . . . . .
78
78
79
79
80
80
82
Handling RDBMS Retryable and Restartable Error Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
FastLoad TMSM Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
FastLoad Statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Performance Statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Chapter 3:
Teradata FastLoad Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Syntax Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Object Name Restrictions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Geospatial Data Restrictions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
LOB Data Restrictions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
NUMBER Data Restrictions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
87
87
88
88
88
AXSMOD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
BEGIN LOADING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Teradata FastLoad Reference
11
Table of Contents
CLEAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .95
DATEFORM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .96
DEFINE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .97
END LOADING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .117
ERRLIMIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .119
HELP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .121
HELP TABLE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .123
INSERT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .125
LOGDATA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .129
LOGMECH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .130
LOGOFF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .131
LOGON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .133
NOTIFY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .137
OS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .142
QUIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .145
Completion Message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .146
RECORD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .147
Completion Message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .148
Completion Message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .148
RUN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .149
SESSIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .151
SET RECORD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .154
SET SESSION CHARSET. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .161
SHOW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .163
SHOW VERSIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .165
SLEEP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .167
TENACITY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .170
Chapter 4:
Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .173
Compiler Versions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .173
Appendix A:
How to Read Syntax Diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .175
Syntax Diagram Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .175
12
Teradata FastLoad Reference
Table of Contents
Appendix B:
Multifile Teradata FastLoad Job Script Examples . . . . . . . . . . . . . 181
First Output File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
Second Output File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
Third Output File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
Appendix C:
INMOD and Notify Exit Routine Examples . . . . . . . . . . . . . . . . . . . . . . 191
z/OS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Assembler INMOD Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
COBOL INMOD Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PL/I INMOD Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
IBM C INMOD Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
191
191
194
196
197
UNIX OS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
BLKEXIT.C Sample INMOD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
BLKEXITR.C Sample INMOD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
All Platforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
Notify Exit Routine Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
Appendix D:
Compile, Link, and Execute INMOD
and Notify Exit Routines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
z/OS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Assembler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
COBOL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
IBM C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PL/I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
217
217
219
220
222
IBM C or C++ INMODs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
UNIX OS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SPARC Systems Running Oracle Solaris . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Opteron Systems Running Oracle Solaris . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
HP-UX PA RISC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
HP-UX Itanium . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
z/Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
225
225
225
226
227
228
229
Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
Teradata FastLoad Reference
13
Table of Contents
Appendix E:
User-Defined-Types
and User-Defined-Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .231
User-Defined-Types and User-Defined-Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .231
User-Defined-Types (UDTs) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .231
User-Defined-Methods (UDMs) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .232
Creating UDTs with FastLoad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .232
Inserting and Retrieving UDTs with Client Products. . . . . . . . . . . . . . . . . . . . . . . . . . . . .232
External Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .232
Inserting UDTs with FastLoad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .233
Retrieving UDTs with FastLoad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .233
Retrieving UDT Metadata with FastLoad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .233
Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .235
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .251
14
Teradata FastLoad Reference
List of Tables
Table 1: Formatted Record Field Descriptions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Table 2: Unformatted Record Field Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Table 3: Binary Record Field Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Table 4: Teradata FastLoad Commands for Session Control . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Table 5: Teradata FastLoad Commands for Data Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Table 6: Teradata SQL Statements Supported in Teradata FastLoad. . . . . . . . . . . . . . . . . . . . 26
Table 7: FastLoad Data Sets/Files and Input/Output Devices. . . . . . . . . . . . . . . . . . . . . . . . . . 33
Table 8: Runtime Parameters (Mainframe-Attached Systems) . . . . . . . . . . . . . . . . . . . . . . . . 36
Table 9: Runtime Parameters (Network-Attached Systems) . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Table 10: Character Sets Supported by Teradata FastLoad . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Table 11: Site-Defined Character Sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Table 12: Range Constraint Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Table 13: Programming Languages Supported by Platform and Type of User-Developed
Routine. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Table 14: Programming Structures for Teradata FastLoad/INMOD Communication . . . . . 65
Table 15: Entry Points for INMOD Routines. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Table 16: Teradata FastLoad--to--INMOD Interface Status Codes . . . . . . . . . . . . . . . . . . . . . 66
Table 17: INMOD-to-Teradata FastLoad Interface Status Codes . . . . . . . . . . . . . . . . . . . . . . 67
Table 18: Events Passed to the Notify Exit Routine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Table 19: Sample INMOD Routines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Table 20: FastLoad Entering Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Table 21: Teradata FastLoad Terminating Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Table 22: Error Conditions that Cause Teradata Database to Reject an Input Data Record . 78
Table 23: Error Tables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Table 24: errortname1 Columns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Table 25: Usage Notes for AXSMOD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Table 26: Usage Note for BEGIN LOADING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Table 27: Usage Notes for DATEFORM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Table 28: Input Length and Field Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Table 29: Limitations by Data Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Table 30: ANSI/SQL DateTime Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Table 31: Usage Notes for END LOADING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Teradata FastLoad Reference
15
List of Tables
Table 32: RECORD Completion Message Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .118
Table 33: Usage Notes for ERRLIMIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .119
Table 34: Usage Notes for HELP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .121
Table 35: Usage Notes for HELP TABLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .123
Table 36: Usage Notes for INSERT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .126
Table 37: LOGOFF Command Usage Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .131
Table 38: LOGOFF Command Completion Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .132
Table 39: Usage Notes for LOGON. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .135
Table 40: Events that Create Notifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .139
Table 41: Usage Notes for NOTIFY. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .139
Table 42: NOTIFY Command Message Examples. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .140
Table 43: OS Command Examples on a UNIX Client System . . . . . . . . . . . . . . . . . . . . . . . . .142
Table 44: Example OS Command on Windows Client System . . . . . . . . . . . . . . . . . . . . . . . .143
Table 45: Example Procedure for OS Command on z/OS Client System . . . . . . . . . . . . . . . .144
Table 46: Usage Notes for QUIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .145
Table 47: Usage Notes for RECORD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .147
Table 48: Usage Notes for Run . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .149
Table 49: Usage Notes for SESSIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .152
Table 50: Usage Notes for SET SESSION CHARSET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .161
Table 51: Usage Notes for SLEEP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .168
Table 52: Usage Notes for TENACITY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .171
Table 53: Compiler Versions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .173
16
Teradata FastLoad Reference
CHAPTER 1
Overview
This chapter provides an introductory overview of the Teradata FastLoad utility. Topics
include:
•
Teradata FastLoad Utility
•
Operating Features and Capabilities
•
Input Data Formats
•
Teradata FastLoad Commands
•
Teradata FastLoad Example
Teradata FastLoad Utility
This section describes Teradata FastLoad features and operation.
Description
Teradata FastLoad is a command-driven utility which can be used to quickly load large
amounts of data in an empty table on a Teradata Database.
Data can be loaded from:
•
Disk or tape files on a mainframe-attached client system
•
Input files on a network-attached workstation
•
Special input module (INMOD) routines written to select, validate, and preprocess input
data
•
Any other device providing properly formatted source data
Teradata FastLoad uses multiple sessions to load data. However, it loads data into only one
table on a Teradata Database per job. To load data into more than one table in the Teradata
Database, multiple Teradata FastLoad jobs must be submitted, one for each table.
Note: Full tape support is not available for any function in Teradata FastLoad for
network-attached client systems. To import data from a tape, write a custom access module
that interfaces with the tape device. For information about how to write a custom access
module, refer to the Teradata Tools and Utilities Access Module Programmer
Guide (B035-2424).
Teradata FastLoad Reference
17
Chapter 1: Overview
Operating Features and Capabilities
What It Does
When Teradata FastLoad is invoked, the utility executes the Teradata FastLoad commands and
Teradata SQL statements in the Teradata FastLoad job script. These direct Teradata FastLoad
to:
1
Log on to the Teradata Database for a specified number of sessions, using username,
password, and tdpid/acctid information.
2
Load the input data into the Teradata FastLoad table on the Teradata Database.
3
Log off from the Teradata Database.
4
If the load operation was successful, return the following information about the Teradata
FastLoad operation and then terminate:
•
Total number of records read, skipped, and sent to the Teradata Database
•
Number of errors posted to the Teradata FastLoad error tables
•
Number of inserts applied
•
Number of duplicate rows
How It Works
Teradata FastLoad processes a series of Teradata FastLoad commands and Teradata SQL
statements entered either interactively or in batch mode.
Use the Teradata FastLoad commands for session control and data handling of the data
transfers. The Teradata SQL statements create, maintain, and drop tables on the Teradata
Database.
During a load operation, Teradata FastLoad inserts the data from each record of the data
source into one row of the table on a Teradata Database. The table on the Teradata Database
receiving the data must be empty and have no defined secondary indexes.
Note: Teradata FastLoad does not load duplicate rows from the data source to the Teradata
Database. (A duplicate row is one in which every field contains the exact same data as the
fields of an existing row.) This is true even for MULTISET tables. To load duplicate rows in a
MULTISET table, use MultiLoad.
Operating Features and Capabilities
This section describes the operating modes and character sets for running Teradata FastLoad.
For specific information on supported operating systems, refer to Teradata Tools and Utilities
##.##.## Supported and Certified Versions (B035-3119). This spreadsheet shows version
numbers and platform information for all Teradata Tools and Utilities products and is
available at http://www.info.teradata.com/.
Caution:
18
Some system configurations running Teradata FastLoad on a network-attached workstation
that has a UNIX® operating system with the data set mounted on a Network File System
(NFS) can produce errors and failed or incomplete data transfer operations. Do not use
Teradata FastLoad with an NFS-mounted data set.
Teradata FastLoad Reference
Chapter 1: Overview
Data Transfer Capabilities
Operating Modes
Teradata FastLoad runs in the following operating modes:
•
Interactive
•
Batch
Character Sets
Teradata FastLoad supports Latin, Chinese, Japanese, and Korean character sets for
network-attached and mainframe-attached configurations. For additional information about
character-set support and definition, speed “Character Set Specification” on page 55.
Teradata FastLoad also supports UTF-16 (workstation only) and UTF-8 character sets. For
additional information, see “Unicode® Character Sets” on page 57.
Note: FastLoad supports 8-byte row counters. All the numbers stated above are of type 8-byte
unsigned integer. A FastLoad job can load up to 18,446,744,073,709,551,615 rows.
Note: FastLoad supports all Unicode characters in object names.
Note: If multi-byte characters are used in object names in a Teradata FastLoad script, they
must be enclosed in double quotes.
Data Transfer Capabilities
This section covers Teradata FastLoad’s data transfer capabilities.
On network-attached workstations, Teradata FastLoad uses the TCP/IP network protocol for
all data transfer operations.
On mainframe-attached systems, Teradata FastLoad transfers data as either:
•
A multi-volume data set or file
•
A number of single-volume data sets or files in separate Teradata FastLoad jobs
Serial Teradata FastLoad operations can be restarted by loading the next tape in a series
instead of beginning with the first tape in a set.
In either case, Teradata FastLoad:
•
Uses multiple Teradata sessions, at one session per AMP, to transfer data
•
Transfers multiple rows of data within a single message
Also, in either case, until the Teradata FastLoad job is completed and the data loaded into the
Teradata FastLoad table:
•
There is no journaling or fallback data
•
The secondary indexes cannot be defined
Teradata FastLoad Reference
19
Chapter 1: Overview
Input Data Formats
Data Conversion Capabilities
Teradata FastLoad can redefine the data type specification of numeric, character, and date
input data so it matches the type specification of its destination column in the Teradata
FastLoad table on the Teradata Database. If, for example, an input field with numeric type
data is targeted for a column with a character data type specification, Teradata FastLoad can
change the input data specification to character before inserting it into the table.
The types of data conversions which can be specified are:
•
Numeric-to-numeric (for example integer-to-decimal)
•
Character-to-numeric
•
Character-to-date
•
Date-to-character
Note: Redundant conversions, like integer-to-integer, are legal and necessary to support the
zoned decimal format. For more information about the zoned decimal format, see Database
Design (B035-1094) and SQL Data Types and Literals (B035-1143).
Use the datatype specification of the DEFINE command to convert input data to a different
type before inserting it into the Teradata FastLoad table on the Teradata Database.
For details on data types and data conversions, see SQL Data Types and Literals (B035-1143).
Checkpoints
Checkpoints are entries posted to a restart log table at regular intervals during the Teradata
FastLoad data transfer operation. If processing stops while a Teradata FastLoad job is running,
the job can be restarted at the most recent checkpoint.
If, for example, 1,000,000 records are being loaded into a table and they have specified
checkpoints every 50,000 records, Teradata FastLoad pauses and posts an entry to the restart
log table whenever multiples of 50,000 records have been successfully sent to the Teradata
Database. If the job stops after record 60,000 has been loaded, the job can be restarted at the
record immediately following the last checkpoint, record 50,001.
Enable the checkpoint function by specifying a checkpoint value in the BEGIN LOADING
command.
Input Data Formats
This section covers the data formats supported by Teradata FastLoad as well as those data sets
and tapes not supported by the utility.
Input data is the raw data that Teradata FastLoad loads from the client system or workstation
to the Teradata Database. The input data can be either formatted, unformatted,
variable-length text or of specific file types, depending on the configuration of the client
system.
For network-attached configurations, Teradata FastLoad supports the following data formats:
20
Teradata FastLoad Reference
Chapter 1: Overview
Input Data Formats
•
Formatted
•
Unformatted
•
Binary
•
Text
•
Variable-length text
For mainframe-attached configurations, Teradata FastLoad supports data sets and tape files
with the following record format (RECFM) attributes:
•
Data sets and tape files with the following record format (RECFM) attributes:
•
F (fixed)
•
FB (fixed block)
•
V (variable)
•
VB (variable block)
•
VBS (variable block, spanned)
Formatted Data
Formatted data on network-attached systems is input data that conforms to the format of data
from a Teradata Database source, such as a BTEQ EXPORT file.
Each record has:
•
A two-byte data length field
•
Optionally, a variable-length indicator bytes field
•
A variable-length input data field
•
A one-byte end-of-record delimiter field
Table 1 lists the formatted record field descriptions.
Table 1: Formatted Record Field Descriptions
Input Record Field Description
Data length
A two-byte field indicating the total length of the record, in bytes, excluding the
first two bytes (this field), and the last byte (the end-of-record field)
The data length must be specified as an explicit value, not an ASCII value. For a
data length of one byte, for example, the specification must be hexadecimal 01. It
cannot be hexadecimal 31, or the ASCII equivalent of the number 1.
Indicator bytes
Optional bytes to indicate null data
Input data
The actual input data for rows in the Teradata FastLoad table.
The input data stream always starts at either:
• The third byte of the record, if there are no optional indicator bytes
• Immediately after the last optional indicator byte
The length of the input data field, less any optional indicator bytes, is as specified
in the first two bytes.
Teradata FastLoad Reference
21
Chapter 1: Overview
Input Data Formats
Table 1: Formatted Record Field Descriptions
Input Record Field Description
End-of-record
The end-of-record delimiter field can be either of two hexadecimal values:
• 0A (line feed)
• 0D (carriage return)
Unformatted Data
Unformatted data on network-attached systems is data that does not conform to the format of
data from a Teradata Database source. It may, however, originate from a Teradata Database
source, or from other sources, such as a Fortran file.
Unformatted records include:
•
Optionally, a variable-length indicator bytes field
•
A variable-length data field
Unformatted records have no end-of-record delimiter field.
Table 2 lists the unformatted record field descriptions.
Table 2: Unformatted Record Field Descriptions
Input Record Field
Description
Indicator bytes
Optional bytes to indicate null data
Input data
Raw data to be loaded into the Teradata FastLoad table on the Teradata Database
Note: If the network-attached system configuration includes both UNIX and Windows
operating system platforms, ensure that the Teradata FastLoad job scripts accommodate the
different ways that each platform specifies new lines in ASCII text files.
Windows platforms use a two-character sequence to signify a new line, carriage return + line
feed. UNIX platforms use a single new-line character to perform the same function.
When loading unformatted ASCII files from a network-attached system, always ensure that
the DEFINE command properly identifies the format of the new-line function for the source
platform:
•
One character for UNIX platforms
•
Two characters for Windows platforms
Binary Data
The binary data format is a 2-byte integer, n, followed by n bytes of data. Binary data format is
similar to formatted data format, except that there is no end-of-record marker.
Each record has:
•
22
A two-byte data length field
Teradata FastLoad Reference
Chapter 1: Overview
Input Data Formats
•
Optionally, a variable-length indicator bytes field
•
A variable-length input data field
Table 3 lists the unformatted binary record field descriptions.
Table 3: Binary Record Field Descriptions
Input Record Field Description
Data length
A two-byte field indicating the total length of the record, in bytes, excluding the
first two bytes (this field)
The data length must be specified as an explicit value, not an ASCII value. For a
data length of one byte, for example, the specification must be hexadecimal 01. It
cannot be hexadecimal 31, or the ASCII equivalent of the number 1.
Indicator bytes
Optional bytes to indicate null data
Input data
The actual input data for rows in the Teradata FastLoad table.
The input data stream always starts at either:
• The third byte of the record, if there are no optional indicator bytes
or
• Immediately after the last optional indicator byte
The length of the input data field, less any optional indicator bytes, is as specified
in the first two bytes.
Text Data
TEXT specifies that each record consists of an arbitrary number of characters in the client
session character set, followed by an end-of-record marker, which is:
•
On UNIX platforms, the newline character (identified in Unicode® as LINE FEED
U+000A)
•
On Windows platforms, the two-character sequence carriage return followed by line feed
(identified in Unicode as CARRIAGE RETURN U+000D and LINE FEED U+000A,
respectively)
For client session character sets other than UTF16, the end-of-record marker byte sequence is:
•
On UNIX platforms, X'0A'
•
On Windows platforms, X'0D0A'
For the UTF16 client session character set (in which each character is encoded in two bytes),
the end-of-record marker byte sequence is:
•
On big endian UNIX platforms, X'000A'
•
On little endian UNIX platforms, X'0A00'
•
On Windows platforms, X'0D000A00'
Note: TEXT format should only be specified for character data. Do not specify TEXT format
for binary data, such as, INTEGER, BYTEINT, PERIOD, and other binary data. Depending on
the actual byte values of the binary data, unexpected results may occur.
Teradata FastLoad Reference
23
Chapter 1: Overview
Teradata FastLoad Commands
Variable-length Text
Variable-length text on a network-attached system is ASCII text data consisting of
variable-length fields and records, with each field separated by a delimiter character.
When loading variable-length text records from a network-attached system, use the SET
RECORD command to specify the delimiter character.
Unsupported Data Sets and Tapes
Teradata FastLoad does not support the following types of data sets and tapes on
mainframe-attached systems:
•
Concatenated data sets
•
Nonlabel (NL) and bypass label (BPL) tapes
Teradata FastLoad Commands
Teradata FastLoad accepts both Teradata FastLoad commands and a subset of Teradata SQL
statements. The Teradata FastLoad commands perform session control and data-handling
activities. The Teradata SQL statements define and manipulate the data stored in the Teradata
Database. This section provides a summary of the Teradata FastLoad commands and Teradata
SQL statements.
Teradata FastLoad Command Summary
The Teradata FastLoad commands perform two types of activities:
•
Session control – Session control commands begin and end Teradata FastLoad sessions
and provide online information about a particular Teradata FastLoad operation.
and
•
Data handling – Data handling commands establish and define a Teradata FastLoad
operation.
Table 4 and Table 5 summarize the Teradata FastLoad commands that perform these activities.
For a detailed description of each Teradata FastLoad command, see Chapter 3: “Teradata
FastLoad Commands.”
Table 4: Teradata FastLoad Commands for Session Control
Command Name
Function
HELP
Lists Teradata FastLoad commands and options
HELP TABLE
Creates a list of field names which can be used with the INSERT statement
LOGOFF
Ends Teradata FastLoad sessions and terminates Teradata FastLoad
QUIT
24
Teradata FastLoad Reference
Chapter 1: Overview
Teradata FastLoad Commands
Table 4: Teradata FastLoad Commands for Session Control (continued)
Command Name
Function
LOGON
Begins one or more Teradata FastLoad sessions
NOTIFY
Specifies a user exit or action to be performed when certain significant
events occur
OS
Enters client operating system commands
SESSIONS
Specifies the number of Teradata FastLoad sessions logged on with a
LOGON command and, optionally, the minimum number of sessions
required to run the job. If the database system (DBS) supports Teradata
Active System Management (TASM), the number of sessions to run the jobs
is determined by the DBS setup rules. Therefore, the SESSIONS command
has no effect. For more information, see Database
Administration (B035-1093).
SHOW
Shows the current field/file definitions established by DEFINE commands
SHOW VERSIONS
Shows the current level of all Teradata FastLoad software modules
SLEEP
Specifies the number of minutes that Teradata FastLoad pauses before
retrying a logon operation
TENACITY
Specifies the number of hours that Teradata FastLoad continues trying to log
on when the maximum number of load jobs is already running on the
Teradata Database
Table 5: Teradata FastLoad Commands for Data Handling
Teradata FastLoad
Command
Function
AXSMOD
Specifies the name and initialization string for a shared object file that loads
data from a file on network-attached client systems
BEGIN LOADING
Identifies the tables used in the Teradata FastLoad operation and, optionally,
specifies when checkpoints are taken or if the user supplies indicator data
CLEAR
Cancels the current DEFINE command specifications
DATEFORM
Specifies the form of the DATE data type specifications for the Teradata
FastLoad job
DEFINE
Describes each field of an input data source record and specifies the name of
the input data source or INMOD routine
END LOADING
Informs the Teradata Database that all input data has been sent
ERRLIMIT
Limits the number of errors detected during the loading phase of a Teradata
FastLoad job
Processing stops when the limit is reached.
RECORD
Teradata FastLoad Reference
Specifies the number of a record in an input data source at which Teradata
FastLoad begins to read data and/or the number of the last record to be read
25
Chapter 1: Overview
Teradata FastLoad Commands
Table 5: Teradata FastLoad Commands for Data Handling (continued)
Teradata FastLoad
Command
Function
RUN
Invokes the specified external source as the current source of commands and
statements
SET RECORD
Specifies that the input data records are either:
•
•
•
•
Formatted
Unformatted
Binary
Text
• Variable-length text
Note: The SET RECORD command applies only to network-attached
systems.
SET SESSION
CHARSET
Specifies which character set is in effect during a specific Teradata FastLoad
invocation
Note: The SET SESSION CHARSET command applies only to
network-attached systems.
Note: The SET RETRY command is obsolete and ignored by Teradata FastLoad. For a
description of the tenacity function, see “Invoking Teradata FastLoad” on page 33 and
“TENACITY” on page 170.
Teradata SQL Statements
Teradata SQL statements define and manipulate the data stored in the Teradata Database.
Table 6 summarizes the Teradata SQL statements supported by Teradata FastLoad
Teradata FastLoad supports only the Teradata SQL statements listed in Table 6. To use other
Teradata SQL statements, Teradata FastLoad must first be exited, and the statements entered
from another application, such as Basic Teradata Query (BTEQ).
Table 6: Teradata SQL Statements Supported in Teradata FastLoad
Teradata SQL Statement
Function
CREATE TABLE
Defines the columns, index, and other qualities of a table
DATABASE
Changes the default database
DELETE
Deletes rows from a table
Note: FastLoad also supports temporal syntaxes like
CURRENT VALIDTIME, SEQUENCED VALIDTIME,
VALIDTIME, NONSEQUENCED VALIDTIME and
NONTEMPORAL clauses prefixed in DELETE/DEL statement.
DROP TABLE
26
Removes a table and all of its rows from a database
Teradata FastLoad Reference
Chapter 1: Overview
Teradata FastLoad Example
Table 6: Teradata SQL Statements Supported in Teradata FastLoad (continued)
Teradata SQL Statement
Function
INSERT
Inserts rows into a table
SET QUERY_BAND...FOR
SESSION
Allows a set of name-value pairs to be defined by the user and/
or middle tier application so they can be customized to each
application’s unique needs at the session level.
Note: Although Teradata Database accepts the “SET
QUERY_BAND ... FOR TRANSACTION;” , Teradata FastLoad
rejects it, displays an error message and terminates.
For syntax and a complete description of each Teradata SQL statement, see SQL Data
Definition Language (B035-1144) and SQL Data Manipulation Language (B035-1146).
The Teradata FastLoad version of the INSERT statement includes a special “wildcard” table
name specification that is not supported by the Teradata Database. For a complete description
of the Teradata FastLoad version of the INSERT statement, see “INSERT” on page 125.
Teradata FastLoad Example
This section provides an example of a small Teradata FastLoad job which can be quickly set up
and run. The example shows how to:
•
Create a data file that will be used as the input source for a Teradata FastLoad job
•
Use a Teradata FastLoad job script to load data into a newly created table
•
Select data from the table to verify the load task
Note: This example is for UNIX or Windows operating systems on a network-attached client
system. Refer to the following appendixes for additional UNIX and Windows examples, and
for z/OS examples on mainframe-attached systems:
•
Appendix B: “Multifile Teradata FastLoad Job Script Examples”
•
Appendix C: “INMOD and Notify Exit Routine Examples”
•
Appendix D: “Compile, Link, and Execute INMOD and Notify Exit Routines”
Dropping the Employee Table
The table in this example is named Employee. Use the Teradata SQL DROP TABLE command
to delete any existing version of the Employee table from the database:
bteq
.logon tdpid/username,password
DROP TABLE employee;
.quit
Creating the Source Data File
Create and save a six-record text file named insert.input:
Teradata FastLoad Reference
27
Chapter 1: Overview
Teradata FastLoad Example
|10021
|10001
|10002
|10028
|10029
|10023
|Brown, Jo
|Jones, Bill
|Smith, Jim
|Lee, Sandra
|Berg, Andy
|Ayer, John
|200|2312|Development
|100|5376|President
|100|4912|Sales
|200|5844|Support
|200|2312|Test
|300|4432|Accounting
|63000.00
|83000.00
|73000.00
|77000.00
|67000.00
|52000.00
|20|Jan
|15|Jan
|10|Jan
| 4|Jan
|10|Jan
| 8|Jan
01
01
01
01
01
01
1955|F|
1960|M|
1970|M|
1971|F|
1967|M|
1965|M|
|M|16|
|M|14|
|M|13|
|M|18|
|M|15|
|M|13|
0|
0|
1|
0|
0|
0|
Use this file as the input source for a Teradata FastLoad job.
Note: The file example uses field delimiter characters ( | ) to help visualize each field. It is not
required to use them in the file.
Writing the Teradata FastLoad Job Script
Create and save a Teradata FastLoad job script file named flinsert.fastload that loads the
six-record insert.data file into the Employee table:
sessions 2;
errlimit 25;
logon tdpid/username,password;
CREATE TABLE employee (
EmpNo SMALLINT FORMAT ‘9(5)’ BETWEEN 10001 AND 32001 NOT NULL,
Name VARCHAR(12),
DeptNo SMALLINT FORMAT ‘999’ BETWEEN 100 AND 900 ,
PhoneNo SMALLINT FORMAT ‘9999’ BETWEEN 1000 AND 9999,
JobTitle VARCHAR(12),
Salary DECIMAL(8,2) FORMAT ‘ZZZ,ZZ9.99’ BETWEEN 1.00 AND 999000.00 ,
YrsExp BYTEINT FORMAT ‘Z9’ BETWEEN -99 AND 99 ,
DOB DATE FORMAT ‘MMMbDDbYYYY’,
Sex CHAR(1) UPPERCASE,
Race CHAR(1) UPPERCASE,
MStat CHAR(1) UPPERCASE,
EdLev BYTEINT FORMAT ‘Z9’ BETWEEN 0 AND 22,
HCap BYTEINT FORMAT ‘Z9’ BETWEEN -99 AND 99 )
UNIQUE PRIMARY INDEX( EmpNo ) ;
set record unformatted;
define
delim0(char(1)),
EmpNo(char(9)), delim1(char(1)),
Name(char(12)), delim2(char(1)),
DeptNo(char(3)), delim3(char(1)),
PhoneNo(char(4)), delim4(char(1)),
JobTitle(char(12)), delim5(char(1)),
Salary(char(9)), delim6(char(1)),
YrsExp(char(2)), delim7(char(1)),
DOB(char(11)), delim8(char(1)),
Sex(char(1)), delim9(char(1)),
Race(char(1)), delim10(char(1)),
MStat(char(1)), delim11(char(1)),
EdLev(char(2)), delim12(char(1)),
HCap(char(2)), delim13(char(1)),
newlinechar(char(1))
file=insert.input;
show;
begin loading employee errorfiles error_1, error_2;
insert into employee (
:EmpNo,
:Name,
28
Teradata FastLoad Reference
Chapter 1: Overview
Teradata FastLoad Example
:DeptNo,
:PhoneNo,
:JobTitle,
:Salary,
:YrsExp,
:DOB,
:Sex,
:Race,
:MStat,
:EdLev,
:HCap
);
end loading;
logoff;
Comments
1
For syntax and descriptions of the following commands, see Chapter 3: “Teradata
FastLoad Commands”:
•
•
•
•
•
2
SESSIONS
ERRLIMIT
LOGON
SET RECORD
DEFINE
•
•
•
•
•
SHOW
BEGIN LOADING
INSERT
END LOADING
LOGOFF
The CREATE TABLE statement creates a new table on the Teradata Database:
•
Named employee
•
With 13 columns:
•
•
•
•
•
•
•
•
EmpNo
Name
DeptNo
PhoneNo
JobTitle
Salary
YrsExp
•
•
•
•
•
•
DOB
Sex
Race
MStat
EdLev
HCap
Indexed by EmpNo (UNIQUE PRIMARY)
For syntax and a complete description of the Teradata SQL CREATE TABLE statement, see
SQL Data Definition Language (B035-1144) and SQL Data Manipulation
Language (B035-1146).
3
The DEFINE command specifies each field of the data records that will be sent to the
Teradata Database. (The insert.input data file was created in the “Creating the Source Data
File” subsection.)
Each field definition provides the name and data type description for each field in the
input data records. In making the field declarations, note that the one character delimiter
fields are optional. They do not need to be used in the example.
Teradata FastLoad Reference
29
Chapter 1: Overview
Teradata FastLoad Example
4
The BEGIN LOADING command specifies the error files and starts the Teradata FastLoad
job, using the insert.input file and the Employee table.
Running the Teradata FastLoad Job
Use the following command to invoke Teradata FastLoad and run the flinsert.fastload job
script:
fastload < flinsert.fastload
Note that the redirection mechanism is required for Teradata FastLoad job scripts on
network-attached client systems.
Verifying the Import Task
Use the following BTEQ commands to verify the Teradata FastLoad job by selecting newly
loaded data from the Employee table:
bteq
.logon tdpid/username,password
.width 120
select * from employee where salary > 65000.00;
.quit
The response indicates that the Employee table was successfully loaded with the data from the
insert.input file:
*** Query completed. 4 rows found. 13 columns returned.
*** Total elapsed time was 6 seconds.
EmpNo
----10028
10001
10002
10029
Name
DeptNo PhoneNo
------------ ------ ------Lee, Sandra
200
5844
Jones, Bill
100
5376
Smith, Jim
100
4912
Berg, Andy
200
2312
JobTitle
--------Support
Preside
Sales
Test
Salary YrsExp
--------- -----77,000.00
4
83,000.00
15
73,000.00
10
67,000.00
10
DOB Sex Race MStat
----------- --- ---- ----JAN 01 1971 F
M
JAN 01 1960 M
M
JAN 01 1970 M
M
JAN 01 1967 M
M
EdLev
----18
14
13
15
HCap
---0
0
1
0
Other Alternatives
The Teradata FastLoad example is a simple, straightforward exercise can be used to quickly
create a job script and run Teradata FastLoad. The following information explains some of the
more significant functional alternatives that Teradata FastLoad provides, and provides
references to where they are described in greater detail.
Mainframe-Attached Client Systems
The Teradata FastLoad example assumes UNIX or Windows OS is the operating system on a
network-attached client system.
To run the example using z/OS on a mainframe-attached client system, use the standard z/OS
JCL control statements (DD) to allocate and create the Teradata FastLoad data sets or files
before invoking the utility.
For more information about invoking Teradata FastLoad on mainframe-attached client
systems, see “Invoking Teradata FastLoad” on page 33.
30
Teradata FastLoad Reference
Chapter 1: Overview
Teradata FastLoad Example
MultiLoad Utility
The Teradata FastLoad example shows a very simple Teradata FastLoad job, loading a very
small amount of data into an empty table.
MultiLoad could have been used to perform the same task, but the job would have run much
more slowly. Teradata FastLoad works only on empty tables. MultiLoad can be used to:
•
Insert additional data rows into existing tables
•
Update individual rows of existing tables
•
Delete individual rows from existing tables
•
Load data into multiple tables
•
Load data into MULTISET tables
•
Load data into tables with nonunique secondary indexes
Input File Formats
The format of the input data source for the Teradata FastLoad example (insert.input) is
UNFORMATTED, as specified by the SET RECORD command.
Teradata FastLoad also supports input data source files with the following formats:
•
FORMATTED
•
BINARY
•
TEXT
•
VARTEXT
For descriptions of all the supported input file formats, see “SET RECORD” on page 154.
INMOD Routines
In the Teradata FastLoad example, the utility reads the input data records directly from the
specified source file (insert.input).
An alternative would be to write an INMOD routine that Teradata FastLoad could call to
obtain input records.
The INMOD routine, for example, could:
•
Read and preprocess records from a file
•
Generate data records
•
Read data from other database systems
•
Validate data records
•
Convert data record fields
In this case, use the optional INMOD name specification of the DEFINE command to identify
the name of the INMOD routine.
For more information about using INMOD routines, see “INMOD and Notify Exit Routines”
on page 64 and the INMOD name option in “DEFINE” on page 97.
Teradata FastLoad Reference
31
Chapter 1: Overview
Teradata FastLoad Example
32
Teradata FastLoad Reference
CHAPTER 2
Using Teradata FastLoad
This chapter provides detailed information about using the Teradata FastLoad utility. Topics
include:
•
Invoking Teradata FastLoad
•
Terminating Teradata FastLoad
•
Restart a Paused Teradata FastLoad Job
•
Programming Considerations
•
INMOD and Notify Exit Routines
•
Teradata FastLoad Job Scripts
•
Run Multifile Teradata FastLoad Jobs
•
Handling Teradata FastLoad Errors
•
Handling RDBMS Retryable and Restartable Error Codes
•
FastLoad TMSM Integration
•
FastLoad Statistics
Invoking Teradata FastLoad
This section describes invocation parameters and other factors related to starting and
terminating Teradata FastLoad.
File Requirements
In addition to the input data source, Teradata FastLoad accesses four different data sets/files or
input/output devices. Table 7 lists the FastLoad data sets/files and input/output devices.
Table 7: FastLoad Data Sets/Files and Input/Output Devices
Data Set/File or Device
Provides
standard input
Teradata FastLoad commands and Teradata SQL statements that
make up a Teradata FastLoad job
standard output
Destination for Teradata FastLoad output responses and messages
standard error
Destination for Teradata FastLoad error messages
configuration
Optional specification of Teradata FastLoad utility default values
Teradata FastLoad Reference
33
Chapter 2: Using Teradata FastLoad
Invoking Teradata FastLoad
When running Teradata FastLoad in interactive mode, the terminal keyboard functions as the
standard input device and the display screen is the standard output/error device.
When running Teradata FastLoad in batch mode, a data set or file name must be specified for
each of these functions. The method of doing this varies, depending on the configuration of
your client system:
•
On network-attached client systems, use the standard redirection mechanism
(recommended approach) to specify the Teradata FastLoad script files when invoking the
utility. Teradata FastLoad script files can also be piped to Teradata FastLoad when invoking
the utility.
•
On mainframe-attached client systems, use standard z/OS JCL control commands to
allocate and create the Teradata FastLoad data sets or files before invoking the utility.
Interactive Mode
To invoke Teradata FastLoad in interactive mode, enter fastload at the system command
prompt:
fastload
Teradata FastLoad displays the following message to begin an interactive session:
===================================================================
=
=
=
FASTLOAD UTILITY
VERSION 14.10.00.00
=
=
PLATFORM WIN32
=
=
=
===================================================================
===================================================================
=
=
=
Copyright 1984-2012, Teradata Corporation.
=
=
ALL RIGHTS RESERVED.
=
=
=
===================================================================
Batch Mode
This section covers invoking Teradata FastLoad in batch mode on network-attached and
client-attached systems.
Batch Mode on Network-Attached Client Systems
Refer to the runtime parameter descriptions in Table 9 on page 39 and use the following
syntax to invoke Teradata FastLoad in batch mode on network-attached client systems:
34
Teradata FastLoad Reference
Chapter 2: Using Teradata FastLoad
Invoking Teradata FastLoad
fastload
-b kilobytes
< infileName
> outfileName
-c characterSetName
-d
-e fileSame
-M maxSessions
-N minSessions
-r outputRate
-s minutes
-t hours
-v
-y
-i scriptEncoding
-u outputEncoding
-V
2411F007
Batch Mode on Mainframe-Attached z/OS Client Systems
Refer to the runtime parameter descriptions in Table 8 on page 36, and use the following
syntax to invoke Teradata FastLoad in batch mode on mainframe-attached z/OS client systems:
//FASTLOAD EXEC PGM=FASTLOAD
,
,PARM = '
BUFSIZE= kilobytes
'
CHARSET= character-set-name
DEBUG
ERRLOG= filename
MAXSESS =max-sessions
MINSESS =min-sessions
RATE =outputrate
SLEEP=minutes
TENACITY=hours
VERBOSE
RVERSION
2411D008
Mainframe-Attached Runtime Parameters
Table 8 describes the runtime parameters used by Teradata FastLoad.
Using these Teradata FastLoad runtime parameters will override configuration parameter
settings.
Teradata FastLoad Reference
35
Chapter 2: Using Teradata FastLoad
Invoking Teradata FastLoad
Table 8: Runtime Parameters (Mainframe-Attached Systems)
Parameter
Description
BUFSIZE=
kilobytes
Output buffer size specification, where kilobytes is the size of
the output buffer, in kilobytes, that will be used for Teradata
FastLoad messages to the Teradata Database
The output buffer size and the size of the rows in the Teradata
FastLoad table determine the maximum number of rows that
can be included in each message to the Teradata Database. A
larger buffer size reduces processing overhead by including
more data in each message.
The default buffer size is also the maximum size allowed, 63
KB. If a value greater than 63 KB is specified, Teradata
FastLoad:
• Responds with a warning message
• Resets the buffer size back to the default value
• Continues with the Teradata FastLoad job
36
Teradata FastLoad Reference
Chapter 2: Using Teradata FastLoad
Invoking Teradata FastLoad
Table 8: Runtime Parameters (Mainframe-Attached Systems) (continued)
Parameter
Description
CHARSET= character-set-name
A character set specification remains in effect for the entire
Teradata FastLoad job, even if the Teradata Database server
resets, causing the Teradata FastLoad job to be restarted.
Caution:
The character set specification does not remain in
effect if the client system fails, or if the Teradata
FastLoad job is cancelled. In these cases, when the
job is resubmitted, he same character set
specification that was used on the initial job must be
used. If a different character set specification is used
when such a job is resubmitted, the data loaded by
the restarted job will not appear the same as the data
loaded by the initial job.
When a particular character set is specified, the identifiers and
data in that character set can be specified, thus affecting how
the data is loaded into the Teradata FastLoad table.
If a character set specification is not entered, the default is
whatever character set that is specified for the Teradata
Database whenever Teradata FastLoad was invoked.
The order in which the character set is determined for a
Teradata FastLoad job is as follows:
• User-specified by either a runtime parameter on
mainframe-attached systems or a SET SESSION CHARSET
command on network-attached systems
• When using UTF-8 client character set on the mainframe,
the client character set name needs to be specified by the
runtime parameter (for example, CHARSET=UTF-8).
UTF8 is also a valid value.
• System Parameter Block (SPB) specified by either the
HSHSPB on mainframe-attached systems or the clispb.dat
file on network-attached systems
• Teradata Database default, determined by a query from
Teradata FastLoad
Note: On IBM z/OS, the job script must be in Teradata
EBCDIC when using UTF-8 client character set. Teradata
FastLoad translates commands in the job script from Teradata
EBCDIC to UTF-8 during the load. Be sure to examine the
definition in International Character Set Support (B035-1132)
to determine the code points of any special characters required.
Different versions of EBCDIC do not always agree as to the
placement of these characters. The mappings between Teradata
EBCDIC and Unicode can be referred in International
Character Set Support (B035-1132).
DEBUG
Teradata FastLoad Reference
Used to display FastLoad execution debugging information to
the standard output.
37
Chapter 2: Using Teradata FastLoad
Invoking Teradata FastLoad
Table 8: Runtime Parameters (Mainframe-Attached Systems) (continued)
Parameter
Description
ERRORLOG= filename
Alternate file specification for Teradata FastLoad error
messages
Specifying an alternate file name produces a duplicate record of
all Teradata FastLoad error messages.
The alternate file specification is limited to eight characters
and, on z/OS, it must be to a DD name defined in the JCL.
There is no default filename specification.
MAXSESS = max-sessions
Maximum number of Teradata FastLoad sessions logged on to
the Teradata Database
Maximum specification must be greater than zero and no more
than the total number of AMPs on the system.
Default is one session for each AMP.
MINSESS = min-sessions
Minimum number of Teradata FastLoad sessions required to
run the job.
Minimum specification must be greater than zero and it must
be less than the value given for MAXSESS.
Default is 1.
RATE=outputrate
The rate for displaying progress messages to standard output
for rows successfully loaded to the Teradata Database.
If not specified, FastLoad defaults to writing a message every
100000 rows. Standard output for the default looks similar to
the following:
**** 22:00:06 Starting row 400000
**** 22:00:11 Starting row 500000
**** 22:00:15 starting row 600000
outputrate must be specified as an integer between 1 and
4294967295. Integers outside this range or float values are
invalid. If an invalid value is specified, FastLoad displays a
message stating that an invalid outputrate value has been
specified and the default value is used to process the Teradata
FastLoad job.
RVERSION
Display version number and stop.
This option must be run alone. Running the -V option with
other run time options will produce invalid results.
SLEEP= minutes
Specification of the sleep option in which minutes is the
number of minutes that Teradata FastLoad pauses before
retrying the logon operation.
For more information, see “SLEEP” on page 167.
The Teradata FastLoad default value is 6 minutes.
38
Teradata FastLoad Reference
Chapter 2: Using Teradata FastLoad
Invoking Teradata FastLoad
Table 8: Runtime Parameters (Mainframe-Attached Systems) (continued)
Parameter
Description
TENACITY= hours
Specification of the tenacity option in which hours is the
number of hours that Teradata FastLoad continues trying to log
on when the maximum number of load jobs are already
running on the Teradata Database.
For more information, see “TENACITY” on page 170.
The Teradata FastLoad default is no tenacity. Either a Teradata
FastLoad configuration file entry, the runtime parameter, or a
TENACITY command in your Teradata FastLoad job script
must be used to enable the tenacity feature for the Teradata
FastLoad logon operation.
VERBOSE
Allows every request sent to the Teradata Database to be
printed.
Network-Attached Runtime Parameters
Table 9 describes the runtime parameters used by Teradata FastLoad.
Using these Teradata FastLoad runtime parameters will override configuration parameter
settings.
Table 9: Runtime Parameters (Network-Attached Systems)
Parameter
Description
-b kilobytes
Output buffer size specification, where kilobytes is the size of
the output buffer, in kilobytes, that will be used for Teradata
FastLoad messages to the Teradata Database.
The output buffer size and the size of the rows in the Teradata
FastLoad table determine the maximum number of rows that
can be included in each message to the Teradata Database. A
larger buffer size reduces processing overhead by including
more data in each message.
The default buffer size is also the maximum size allowed, 63
KB. If a value greater than 63 KB is specified, Teradata
FastLoad:
• Responds with a warning message
• Resets the buffer size back to the default value
• Continues with the Teradata FastLoad job
Teradata FastLoad Reference
39
Chapter 2: Using Teradata FastLoad
Invoking Teradata FastLoad
Table 9: Runtime Parameters (Network-Attached Systems) (continued)
Parameter
Description
-c character-set-name
Character set specification for the Teradata FastLoad job.
A character set name, as described in “Character Set
Specification” on page 55 can be specified.
Character set specification remains in effect for the entire
Teradata FastLoad job, even if the Teradata Database server
resets, causing the Teradata FastLoad job to be restarted.
Caution:
The character set specification does not remain in
effect if the client system fails, or if the Teradata
FastLoad job is cancelled. In these cases, when a job
is resubmitted, it must use the same character set
specification that was used on the initial job. If a
different character set specification is used when the
job is resubmitted, the data loaded by the restarted
job will not appear the same as the data loaded by
the initial job.
When a particular character set is specified, the identifiers and
data in that character set can be specified, thus affecting how
the data is loaded into the Teradata FastLoad table.
If a character set specification is not entered, the default is
whatever character set that is specified for the Teradata
Database whenever Teradata FastLoad is invoked.
Note: The order in which the character set is determined for a
Teradata FastLoad job is as follows:
1 User-specified by either a runtime parameter on
mainframe-attached systems or a SET SESSION CHARSET
command on network-attached systems
2 System Parameter Block (SPB) specified by either the
HSHSPB on mainframe-attached systems or the clispb.dat
file on network-attached systems
3 Teradata Database default, determined by a query from
Teradata FastLoad
Note: When using UTF-16client character set on the network,
the client character set name needs to be specified by the
runtime parameter (for example, -c UTF-16). UTF16 is also a
valid value.
-d
40
Used to display FastLoad execution debugging information to
the standard output
Teradata FastLoad Reference
Chapter 2: Using Teradata FastLoad
Invoking Teradata FastLoad
Table 9: Runtime Parameters (Network-Attached Systems) (continued)
Parameter
Description
-i scriptencoding
Specifies the encoding form of the job script.
The parameter is introduced for use with the UTF-16 client
character set, so it is only valid when UTF-16 client character
set is used. If the client character set being used is not UTF-16
and the parameter is specified, Teradata FastLoad reports an
error and terminates.
Valid encoding options are:
•
•
•
•
UTF-8 or UTF8
UTF-16BE, or UTF16-BE, or UTF16BE
UTF-16LE, or UTF16-LE, or UTF16LE
UTF-16 or UTF16
• UTF-8 indicates the job script is in UTF-8 character set.
• UTF-16 indicates the job script is in UTF-16 character set
without specifying the endianness.
• UTF-16BE indicates the job script is in big endian UTF-16
character set.
• UTF-16LE indicates the job script is in little endian UTF-16
character set.
Or, if UTF-16LE is specified but the UTF-16 Byte Order Mark
(BOM) in the script file indicates the script is in big endian,
Teradata FastLoad reports an error and terminates.
The UTF-16 or UTF-8 BOM can be present or absent in the
script file. Specify the input script format with -i runtime
parameter (mandatory) and specify session character set with
-c runtime parameter (mandatory) to ensure that the BOM in
the script file can be processed correctly.
When UTF-16 is specified and the UTF-16 BOM is present in
the script file, Teradata FastLoad interprets the script according
to the endianness indicated by the UTF-16 BOM. When the
UTF-16 BOM is not present, Teradata FastLoad interprets the
script according to the endianness indicated by the option
value. If the endianness is not indicated by the option value (for
example, UTF-16 is specified instead of UTF16-BE or
UTF-16LE), Teradata FastLoad interprets the job script in
UTF-16 according to the endianness of the client system where
the Teradata FastLoad job invoked. The specified encoding
character set applies to all script files included by the .RUN
FILE commands.
Note: When this runtime parameter is not specified and
UTF-16 client character is used, Teradata FastLoad interprets
the job script in UTF-16. When UTF-8 is specified, Teradata
FastLoad interprets the job script in UTF-8 and converts SQL
and DML statements in the script from UTF-8 to UTF16
before sending the SQL and DML statements to Teradata
Database.
Teradata FastLoad Reference
41
Chapter 2: Using Teradata FastLoad
Invoking Teradata FastLoad
Table 9: Runtime Parameters (Network-Attached Systems) (continued)
Parameter
Description
Note: If the script is encoded in UTF-8 and the session
character set specified is UTF-8, then -i UTF-8 must be
specified, meaning the job must be run as “fastload -c UTF8 -i
UTF8.”
-u outputencoding
Specifies the encoding form of the job output.
The parameter is introduced for being used for UTF-16 client
character set so it is only valid when UTF-16 client character
set is used. If the client character set being used is not UTF-16
and the parameter is specified, Teradata FastLoad reports an
error and terminates.
Valid encoding options are:
•
•
•
•
UTF-8 or UTF8
UTF-16BE, or UTF16-BE, or UTF16BE
UTF-16LE, or UTF16-LE, or UTF16LE
UTF-16 or UTF16
• UTF-16BE instructs Teradata FastLoad to print the job
output in the big endian UTF16 character set.
• UTF-16LE instructs Teradata FastLoad to print the job
output in the little endian UTF-16 character set.
• On big endian client systems, UTF-16 instructs Teradata
FastLoad to print the job output in big endian UTF-16
character set.
• On the little endian client systems, UTF-16 instructs
Teradata FastLoad to print the job out in little endian
UTF-16 character set.
When the parameter is being used, it should be placed in front
of the other runtime parameters to ensure the whole job output
will be printed in the desired encoding form. If not placed
ahead of the other runtime parameters when invoking the job,
a warning message will be printed.
When the parameter is not specified and the client character set
being used is UTF-16, the job output will be printed as
UTF-16.
Note: Do not use Notepad to view Unicode characters and
MBCS. Word provides the option to select the encoding when
opening the file, and always displays the MBCSs correctly with
the proper encoding. Other Hexidecimal editors can also be
used to view Unicode characters and MBCS properly.
42
Teradata FastLoad Reference
Chapter 2: Using Teradata FastLoad
Invoking Teradata FastLoad
Table 9: Runtime Parameters (Network-Attached Systems) (continued)
Parameter
Description
-e filename
Alternate file specification for Teradata FastLoad error
messages.
Specifying an alternate file name produces a duplicate record of
all Teradata FastLoad error messages.
On z/OS mainframe-attached systems, the alternate file
specification is limited to eight characters, and it must be to a
DD name defined in the JCL.
There is no default filename specification.
When valid -u parameter is specified the contents of errorfile
will be in the same output script encoding.
For example, if UTF16 is specified for -u parameter, the
contents are in Default Platform Endianness. When Little
Endian is specified on Windows with Little Endian BOM in the
beginning, or Big Endian is specified on a SPARC machine
running Oracle Solaris with Big Endian BOM in the beginning.
If UTF16-BE is specified for -u parameter, the contents are in
Big Endian.
< infilename
Name of the standard input file that contains the Teradata
FastLoad commands and Teradata SQL statements on
network-attached client systems.
The infilename specification redirects the standard input
(stdin). If an infilename specification is not entered, the default
is stdin.
Caution:
On a UNIX OS, if your infilename contains
parenthesis, commas, or equal signs, FastLoad will
return an error of “File Not Found”. The infilename
must be changed to remove these special characters.
On Windows, these characters are legal, and
therefore no changes are necessary.
Note: On mainframe-attached client systems, the SYSIN
control command must be used to specify the input file before
the utility is invoked.
Teradata FastLoad Reference
43
Chapter 2: Using Teradata FastLoad
Invoking Teradata FastLoad
Table 9: Runtime Parameters (Network-Attached Systems) (continued)
Parameter
Description
> outfilename
Name of the standard output file for Teradata FastLoad
messages on network-attached systems.
The outfilename specification redirects the standard output
(stdout).
If an outfilename specification is not entered, the default is
stdout.
Caution:
If an outfilename specification is not used to redirect
stdout, do not use the same outfilename as an output
or echo destination in the ROUTE MESSAGES
command. Doing so produces incomplete results
because of the conflicting write operations to the
same file.
Note: On mainframe-attached client systems, the SYSPRINT
control command must be used to specify the output file before
invoking the utility.
Specification on mainframe-attached systems that the Teradata
FastLoad job will use an INMOD routine written in the IBM C
programming language. The Teradata FastLoad job will fail if
this option is not specified when using a IBM C INMOD
routine.
-M max-sessions
Maximum number of Teradata FastLoad sessions logged on to
the Teradata Database.
Maximum specification must be greater than zero and no more
than the total number of AMPs on the system.
Default is one session for each AMP.
-N min-sessions
Minimum number of Teradata FastLoad sessions required to
run the job.
Minimum specification must be greater than zero and it must
be less than the value given for MAXSESS.
Default is 1.
-s minutes
Specification of the sleep option in which minutes is the
number of minutes that Teradata FastLoad pauses before
retrying the logon operation.
For more information, see “SLEEP” on page 167.
The Teradata FastLoad default value is 6 minutes.
44
Teradata FastLoad Reference
Chapter 2: Using Teradata FastLoad
Invoking Teradata FastLoad
Table 9: Runtime Parameters (Network-Attached Systems) (continued)
Parameter
Description
-t hours
Specification of the tenacity option in which hours is the
number of hours that Teradata FastLoad continues trying to log
on when the maximum number of load jobs are already
running on the Teradata Database.
For more information, see “TENACITY” on page 170.
The Teradata FastLoad default is no tenacity. Either a Teradata
FastLoad configuration file entry, the runtime parameter, or a
TENACITY command in the Teradata FastLoad job script must
be used to enable the tenacity feature for the Teradata FastLoad
logon operation.
-v
Allows printing of every request sent to the Teradata Database.
-y
Specification for the data encryption option.
When specified at run time, all sessions will be encrypted.
-V
Display version number and stop.
This option must be run alone. Running the -V option with
other run time options will produce invalid results.
-w
FastLoad wraps long error message to cleanup the message.
“-w” allows a user to specify the output message width.
The output width can be set to any value from 62 to 256 bytes.
If used, FastLoad wraps long error messages at the width
specified, instead of the at 72 bytes if the option is not set for
backward compatibility.
If an out of range value is set, FastLoad issues a warning
message and continues to use default constant width for output
messages.
-r outputrate
The rate for displaying progress messages to standard output
for rows successfully loaded to the Teradata Database.
If not specified, FastLoad defaults to writing a message every
100000 rows. Standard output for the default looks similar to
the following:
**** 22:00:06 Starting row 400000
**** 22:00:11 Starting row 500000
**** 22:00:15 starting row 600000
outputrate must be specified as an integer between 1 and
4294967295. Integers outside t-s range or float values are
invalid. If an invalid value is specified, FastLoad displays a
message stating that an invalid outputrate value has been,
specified and the default value is used to process the Teradata
FastLoad job.
Note: The first occurrence of the runtime parameter is in effect if the duplicates are specified
and the remaining will be omitted with a warning message “FDL2430 WARNING: Run time
parameters detected and omitted.”
Teradata FastLoad Reference
45
Chapter 2: Using Teradata FastLoad
Invoking Teradata FastLoad
z/OS Example
Following is an example z/OS program that invokes Teradata FastLoad:
//FASTLOAD EXEC TDSFAST,INFILE=’<input dataset>’
//FAST.SYSIN DD DATA,DLM=$$
<FastLoad Control Statements>
$$
where the ddname SYSIN is the input data set that contains the Teradata FastLoad job script.
z/OS Procedure
Following is a sample z/OS procedure that is provided on the release tape with Teradata
FastLoad software. This procedure can be changed to meet specific site requirements and use
it to invoke Teradata FastLoad on a mainframe-attached z/OS client system.
//TDSFAST PROC FDLOPT=,PFX1=’DBC’,PFX2=’DBC’,
//INFILE=’NULLFILE’
//*****************************************
//* THIS PROCEDURE EXECUTES
*
//* THE FASTLOAD PROGRAM
*
//*
*
//* YOU CAN COPY THIS PROCEDURE
*
//* INTO YOUR SYSTEM PROCLIB
*
//* FOR ALL DBC USERS GENERAL USAGE.
*
//*
*
//* EXAMPLE EXECUTION:
*
//*
//FAST EXEC TDSFAST
*
//*
//FAST.SYSIN
DD DATA,DLM=$$
*
//*
LOGON .....;
*
//*
LOGOFF;
*
//*
$$
*
//*
*
//*
DDNAMES USED:
*
*
//*
SYSPRINT - PRINTED OUTPUT.
//*
SYSIN
- INPUT DATA SET
*
//*
CONTAINING FASTLOAD
*
//*
STATEMENTS.
*
//*
INFILE
- INPUT DATA SET
*
//*
CONTAINING DATA.
*
//*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
//* TAILOR THE FOLLOWING FOR YOUR
*
//* SPECIFIC ENVIRONMENT:
*
//* SYMBOLIC
USE
*
//* ========
===
*
//* PFX1
= HIGH LEVEL QUALIFIER
*
//*
FOR APPLOAD LIBRARY.
*
//* FPX2
= HIGH LEVEL QUALIFIER
*
//*
FOR IBM C RUNTIME LIBRRARY.*
//* FDLOPT
= FASTLOAD PARAMETER INPUT. *
//* INFILE
= DSNAME OF INPUT DATASET.
*
//*
*
//*---------------------------------------*
//*
*
//* -DATE-- III DR/DCR- CHNG#--COMMENTS-- *
//*
*
//* 23JAN96 MXM
CREATED FOR C
*
46
Teradata FastLoad Reference
Chapter 2: Using Teradata FastLoad
Terminating Teradata FastLoad
//*
VERSION OF
*
//*
FASTLOAD
*
//*****************************************
//FASTLOAD EXEC PGM=FASTLOAD,
//
PARM=’&FDLOPT’, REGION=4096K
//STEPLIB DD DSN=&PFX1..APPLOAD,DISP=SHR
//
DD DSN-&PFX2..TRLOAD,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSABEND DD SYSOUT=*
//SYSTERM DD SYSOUT=*
//INFILE
DD DSN=&INFILE,DISP=SHR
UNIX and Windows Examples
Following are examples of three ways to invoke Teradata FastLoad on network-attached client
systems:
•
fastload </home/fluser/tests/test1 >/home/fluser/tests/out1
This command specifies both an input file and an output file:
•
/home/fluser/tests/test1 is the input file that provides the Teradata FastLoad
job script.
•
•
/home/fluser/tests/out1 is the destination file for output data.
fastload </home/fluser/tests/test1
This command specifies only an input file. In this case, the output is written to the
standard output device, which is usually a terminal.
•
fastload
This command specifies neither an input nor an output device. In this case, the terminal
provides both the command input and the output data destination.
Terminating Teradata FastLoad
This section covers methods of termination and other topics related to terminating Teradata
FastLoad.
Definition
There are two ways to terminate Teradata FastLoad, depending on the operational situation:
•
Normal Termination
or
•
Abort Termination
Either way ends all Teradata FastLoad sessions and logs off the Teradata Database. A normal
termination, however, does so in an orderly, controlled fashion, and returns messages
indicating the status of the Teradata FastLoad job, and whether the utility was paused or
terminated. An abort termination does not.
Teradata FastLoad Reference
47
Chapter 2: Using Teradata FastLoad
Terminating Teradata FastLoad
Normal Termination
Use the LOGOFF or QUIT command in a Teradata FastLoad batch job script or interactive
session to terminate Teradata FastLoad normally on both network-attached and
mainframe-attached client systems:
LOGOFF
;
QUIT
2411A013
Teradata FastLoad logs off all sessions with the Teradata Database and returns a status message
indicating:
•
The total processor time that was used.
•
The job start and stop date/time.
•
The highest return code that was encountered:
•
•
0 if the job completed normally
•
4 if a warning condition occurred
•
8 if a user error occurred
•
12 if a fatal error occurred
Whether the utility terminated or paused
For more information about return codes and the conditions that terminate or pause Teradata
FastLoad, see “LOGOFF” on page 131 or “QUIT” on page 145.
Abort Termination
The procedure for aborting a Teradata FastLoad job depends on whether the utility is running
on a network-attached or mainframe-attached client system.
To abort a Teradata FastLoad job running on a network-attached client system
✔ Press the Control + C key combination three times on the workstation keyboard.
Note: Some sessions of the aborted Teradata FastLoad job may remain active until the
gateway timeout period expires. Error “2738 %TVMID already has Teradata FastLoad
running” may occur if the same Teradata FastLoad job is resubmitted within the timeout
period. If this happens, wait until the gateway time-out has expired before resubmitting
the same Teradata FastLoad job.
To abort a Teradata FastLoad job running on a mainframe-attached client system
✔ Cancel the job from the client system console.
48
Teradata FastLoad Reference
Chapter 2: Using Teradata FastLoad
Restart a Paused Teradata FastLoad Job
Restart a Paused Teradata FastLoad Job
This section describes restarting Teradata FastLoad jobs that have been paused or interrupted.
Overview
A paused Teradata FastLoad job is one that was halted, before completing, during the loading
or end loading phase of the Teradata FastLoad operation. The paused condition can be
intentional, or the result of a system failure or error condition.
A Teradata FastLoad job can be paused intentionally by using the LOGOFF or QUIT
command before the END LOADING command in the Teradata FastLoad job script, as when
running a multifile Teradata FastLoad job.
Starting from Teradata Tools and Utilities 14.00, there is a data signature included in
checkpoint information. That data signature is validated during a restart and may result in
new errors at the beginning of a restart.
Unintentional conditions that can pause a Teradata FastLoad job include:
•
Client system or Teradata FastLoad failures
•
Unrecoverable error conditions
•
Database or table overfills
•
Teradata Database failures
When a Teradata FastLoad job is in the paused state, the Teradata FastLoad target table and
the two error tables on the Teradata Database are locked. Two error tables can be accessed by
using a locking modifier, such as:
After a Client System or Teradata FastLoad Failure
When a client system or a Teradata FastLoad failure occurs while a Teradata FastLoad job is
running, Teradata FastLoad:
1
Pauses the job.
2
Tries to log off all Teradata FastLoad sessions on the Teradata Database.
locking error_table_name for access
select errorcode, errorfieldname
from error_table_name;
To access the Teradata FastLoad target table, a Teradata FastLoad job consisting of a BEGIN
LOADING and an END LOADING command must be submitted. This effectively restarts and
ends the job.
After executing the END LOADING command, the Teradata FastLoad target table can be
accessed, but the original job cannot be restarted.
The following subsections describe the various pause conditions, the factors affecting Teradata
FastLoad restart operations, and the procedure for restarting a paused Teradata FastLoad job.
Teradata FastLoad Reference
49
Chapter 2: Using Teradata FastLoad
Restart a Paused Teradata FastLoad Job
After a Database Overfill Condition
When a Teradata FastLoad job tries to load more data into a table than the table or the
database that it is in can hold, Teradata FastLoad pauses the job and returns the following
message:
RDBMS error 2644: No more room in database <uid>
Increase database size and restart Teradata FastLoad
In this case, after increasing the amount of space allocated to the database, the Teradata
FastLoad job can be restarted at the point where the reported out-of-space condition
occurred.
After a Teradata Database Failure
Restarting a Teradata FastLoad job that was paused because of a Teradata Database failure
depends on the operational configuration of the Teradata Database when it returns to service:
•
If the configuration of the restarted Teradata Database is exactly the same as it was when
Teradata FastLoad was invoked, then Teradata FastLoad restarts the job automatically. In
this case, if the Teradata FastLoad job was paused in the end loading phase, the Teradata
Database resumes processing at the same place it was stopped.
If the Teradata FastLoad job was paused in the loading phase, the Teradata Database
resumes processing:
•
at the last checkpoint if the BEGIN LOADING command specified the checkpoint
option.
•
at the beginning if the BEGIN LOADING command did not specify the checkpoint
option.
Note: If the Teradata FastLoad job uses an INMOD routine, the routine must be able to
handle restarts and checkpoints when restarted in the loading phase.
•
If the configuration of the restarted Teradata Database is different from the way it was
when Teradata FastLoad is invoked, then Teradata FastLoad does not restart the job. In this
case, to restart and continue with the paused Teradata FastLoad job, must reestablish the
original configuration of the Teradata Database. If this is not possible, then the Teradata
FastLoad job must:
a
Delete the Teradata FastLoad table and error tables.
b
Resubmit the Teradata FastLoad job, from the beginning, as a new job.
After an Unrecoverable Error Condition
When an unrecoverable error condition occurs while a Teradata FastLoad job is processing the
BEGIN LOADING command, but before completing the end loading process, Teradata
FastLoad:
50
1
Pauses the job.
2
Logs off all Teradata FastLoad sessions on the Teradata Database.
Teradata FastLoad Reference
Chapter 2: Using Teradata FastLoad
Restart a Paused Teradata FastLoad Job
3
Writes the Teradata FastLoad PAUSED message to the standard output device, along with
the error code associated with the error.
Note: Teradata FastLoad terminates if an unrecoverable error condition occurs before it
begins processing the BEGIN LOADING command, or after it has completed processing the
END LOADING command.
Note: FastLoad does not support the restart of a Name Pipe Access Module after the job
aborted in a restart condition.
Restart Procedures
The procedure which is used and the Teradata FastLoad response to restarting a paused
Teradata FastLoad job depends on the phase that the Teradata FastLoad job was in when it was
paused.
•
A job that was paused during loading can be restarted, either from the beginning, or from
the most recent checkpoint if the BEGIN LOADING command specified the checkpoint
option.
•
Or, a job that was paused during end loading from wherever it was interrupted can be
restarted. This is because the Teradata Database uses internal checkpointing during this
phase.
Note: Generally, nothing needs to be done because processing after the END LOADING
command is executed on the Teradata Database does not depend on Teradata FastLoad.
However, if restarting the job in the end loading phase is required, see the following
procedure.
To restart the job if the Teradata FastLoad job was paused during the loading phase
1
Remove the CREATE TABLE statement and any DROP TABLE and DELETE statements
from the Teradata FastLoad job script to prevent the restarted job from dropping the
partially loaded Teradata FastLoad table or deleting the entries in the two error tables.
2
Invoke Teradata FastLoad to start the job. The Teradata FastLoad utility:
•
Establishes new sessions using the LOGON command.
•
Reads the restart log to determine the restart point.
•
In response to the BEGIN LOADING command, indicates that the job is being
restarted.
If, for example, the job had a checkpoint specification of 100, and the failure occurred at
row 1100, the Teradata FastLoad response would be:
FastLoad RESTARTED
The last checkpoint was taken at
row: 1100
FastLoad will now restart at
row: 1101
Note: If the Teradata FastLoad job was paused during the loading phase and uses an INMOD
routine, the INMOD routine must be able to handle restarts and checkpoints when restarted
in the loading phase. Following a restart, Teradata FastLoad passes a status code of 2 or 4 to an
INMOD routine that is participating in a load operation. The routine must adjust the record
Teradata FastLoad Reference
51
Chapter 2: Using Teradata FastLoad
Programming Considerations
to be read to the position of the last checkpoint and, upon subsequent calls, send records to
Teradata FastLoad.
To restart the job if the Teradata FastLoad job was paused during the end loading phase
1
Use the same LOGON command described in the preceding procedure.
2
Submit BEGIN LOADING and END LOADING commands, as in the following example:
LOGON dbc/sjn,music ;
BEGIN LOADING Fast_Table
ERRORFILES Error_1, Error_2 ;
END LOADING ;
Note: If a Teradata FastLoad job script is used to assemble these commands, make sure to
delete the CREATE TABLE and any DROP TABLE and DELETE statements before restarting
the job.
Programming Considerations
This section describes the things to consider when designing and coding a Teradata FastLoad
job script.
Teradata FastLoad Configuration File
A Teradata FastLoad configuration file can be created to set the initial default values for the
following operating parameters when Teradata FastLoad is invoked:
•
TENACITY
•
SLEEP
•
BUFSIZE
•
CHARSET
•
INMODRETURN
•
MAXSESS
•
MINSESS
•
CONFIGERRORS
•
RETRYFIRSTCONNECT
•
RETRYOTHERCONNECT
•
RETRYCONNECTINTERVAL
Note: RETRYFIRSTCONNECT, RETRYOTHERCONNECT and
RETRYCONNECTINTERVAL can only be specified in the configuration file for networkattached platforms, there are no corresponding command line options.
The values specified in the Teradata FastLoad configuration file override the internal utility
default values for these parameters.
52
Teradata FastLoad Reference
Chapter 2: Using Teradata FastLoad
Programming Considerations
The configuration file parameters themselves can be overridden by the TENACITY, SLEEP,
SESSION, and SET SESSION CHARSET commands in the Teradata FastLoad job script, and
by the corresponding runtime parameters, as shown in Table 8 on page 36 and Table 9 on
page 39. The order of preferences for the TENACITY, SLEEP and SESSION specifications,
from the highest to lowest, is:
1
Runtime parameters
2
Teradata FastLoad script commands
3
Teradata FastLoad configuration file specifications
4
Teradata FastLoad default values
Note: The utility default for TENACITY is no tenacity. Either a configuration file entry, the
runtime parameter, or the TENACITY command in your Teradata FastLoad job script must
be used to enable the tenacity feature for the Teradata FastLoad logon operation.
The order of preferences for the CHARSET specification, from the highest to lowest, is:
1
Runtime parameters
2
Teradata FastLoad script commands
3
Teradata FastLoad configuration file specifications
4
Teradata FastLoad default values
Configuration File Name and Location
On network-attached systems, the Teradata FastLoad configuration file must be named:
floadcfg.dat
And it must be located in either:
•
The directory from which Teradata FastLoad was launched
•
The directory specified in the FLOADLIB environment variable
On mainframe-attached systems, the DD statement for the Teradata FastLoad configuration
file must be labeled FLOADCFG
Configuration File Contents
The Teradata FastLoad configuration file can have up to twelve entries, one for each
parameter:
TENACITY=hours
SLEEP=minutes
BUFSIZE=kilobytes
CHARSET=character-set-name
INMODRETURN=ON or YES
MAXSESS=max-sessions
MINSESS=min-sessions
DATAENCRYPTION=ON or OFF
CONFIGERRORS=IGNORE/TERMINATE
RETRYFIRSTCONNECT=n
RETRYOTHERCONNECT=n
RETRYCONNECTINTERVAL=s
Teradata FastLoad Reference
53
Chapter 2: Using Teradata FastLoad
Programming Considerations
where:
•
hours is the TENACITY specification of the number of hours that Teradata FastLoad
continues trying to log on when the maximum number of load jobs are already running
on the Teradata Database. For more information about this specification, see
“TENACITY” on page 170.
•
minutes is the SLEEP specification of the number of minutes that Teradata FastLoad
pauses between attempts to log on. For more information about this specification, see
“SLEEP” on page 167.
•
kilobytes is the size of the output buffer, in kilobytes, to be used for Teradata FastLoad
messages to the Teradata Database. For a description of the BUFSIZE specification, see
Table 8 on page 36.
•
character-set-name is the character set specification for the job. For more information
about this specification, see Table 8 on page 36 orTable 9 on page 39 and “SET SESSION
CHARSET” on page 161.
•
ON or YES specifies that INMOD return codes are to be checked and returned. The
informational message INMOD return codes will be checked displays. Nonzero
return codes force Teradata FastLoad to terminate.
•
max-sessions is the MAXSESS specification for the maximum number of Teradata
FastLoad sessions logged on to the Teradata Database. For more information about this
specification, see “SESSIONS” on page 151.
•
min-sessions is the MINSESS specification for the minimum number of Teradata FastLoad
sessions required to run the job. For more information about this specification, see
“SESSIONS” on page 151.
•
RETRYFIRSTCONNECT, RETRYOTHERCONNECT and RETRYCONNECTINTERVAL
are used to deal with CLI Error 207 return (network down when trying to connect).
RETRYFIRSTCONNECT is used to specify number of retries for the 1st SQL main
connection (the default is 0). RETRYOTHERCONNECT is used to specify the number of
retries for other connections including auxiliary and fastload session connection (the
default is 16). RETRYCONNECTINTERVAL is used to specify the interval between retries
(the default is 60 second), the value specify is in term of seconds.
•
ON or OFF specifies whether data encryption will be enabled for the job.
•
IGNORE/TERMINATE configures the option for configuration file error handling.
The configuration file can also have comment statements preceded by a number sign (#)
character.
Configuration File Processing
Teradata FastLoad automatically checks for a configuration file each time the invocation
command is entered. Upon locating a configuration file, the utility sets the defaults as
specified, produces the appropriate output messages, and begins processing the Teradata
FastLoad job.
By default, any invalid configuration file entry or syntax error immediately aborts a job and
produces return code 12. The first invalid parameter is reported; none of the other
configuration parameters are checked.
54
Teradata FastLoad Reference
Chapter 2: Using Teradata FastLoad
Programming Considerations
•
If CONFIGERRORS=IGNORE is specified, any subsequent configuration file problems
will be reported, but they will not affect the return code. FastLoad will continue to process
the next entry in the configuration file.
•
If CONFIGERRORS=TERMINATE is specified (the default), any subsequent invalid
configuration file entry will abort the job.
The CONFIGERRORS value can be changed more than once in a configuration file. Its value
affects subsequent entries processing until the next CONFIGERRORS entry or until the end of
the configuration file.
If no configuration file exists, the utility begins processing the load job without an error
indication. The configuration file is an optional feature; its absence is not considered an error
condition.
Note: The config file must be in the platform-appropriate single-byte character set, like ASCII
or EBCDIC.
Character Set Specification
Table 10 lists character sets supported by Teradata FastLoad.
Table 10: Character Sets Supported by Teradata FastLoad
Character Set Name
Description
Configuration
ASCII
Latin
Network-attached
EBCDIC
Latin
Mainframe-attached
HANGULEBCDIC933_1II
Korean
Mainframe-attached
HANGULKSC5601_2R4
Korean
Network-attached
KANJIEUC_0U
Japanese
Network-attached
KANJISJIS_0S
Japanese
Network-attached
KATAKANAEBCDIC
Japanese
Mainframe-attached
KANJIEBCDIC5026_0I
Japanese
Mainframe-attached
KANJIEBCDIC5035_0I
Japanese
Mainframe-attached
SCHEBCDIC935_2lJ
Simplified Chinese
Mainframe-attached
SCHGB2312_1T0
Simplified Chinese
Network-attached
TCHEBCDIC937_3IB
Traditional Chinese
Mainframe-attached
TCHBIG5_1R0
Traditional Chinese
Network-attached
UTF-8
Unicode character set
• Mainframe-attached
• Network-attached
UTF-16
Teradata FastLoad Reference
Unicode character set
Network-attached
55
Chapter 2: Using Teradata FastLoad
Programming Considerations
Site-Defined Character Sets
When the character sets defined are not appropriate for a site, custom character sets can be
defined using the information in Table 11. For information on defining a custom character
set, see SQL Data Definition Language (B035-1144).
Table 11 lists the site-defined character sets.
Table 11: Site-Defined Character Sets
Character Set Name
Description
Configuration
SDHANGULEBCDIC933_5II
Korean
Mainframe-Attached
SDHANGULKSC5601_4R4
Korean
Network-Attached
SDKATAKANAEBCDIC_4IF
Japanese
Mainframe-Attached
SDKANJIEBCDIC5026_4IG
Japanese
Mainframe-Attached
SDKANJIEBCDIC5035_4IH
Japanese
Mainframe-Attached
SDKANJIEUC_1U3
Japanese
Network-Attached
SDKANJISJIS_1S3
Japanese
Network-Attached
SDSCHEBCDIC935_6IJ
Simplified Chinese
Mainframe-Attached
SDTCHEBCDIC937_7IB
Traditional Chinese
Mainframe-Attached
SDSCHGB2312_2T0
Simplified Chinese
Network-Attached
SDTCHBIG5_3R0
Traditional Chinese
Network-Attached
Note: For information on defining a custom character set, see International Character Set
Support (B035-1132).
Rules for Chinese and Korean Character Set Use
Follow these rules when using Chinese and Korean character sets on mainframe-attached and
network-attached platforms.
•
Object Names
Object names are limited to A-Z, a-z, 0-9, and special characters such as $ and _.
•
Maximum String Length
The DBS requires two bytes to process each of the Chinese or Korean characters. This
limits both request size and record size. For example, if a record consists of one string, the
length of that string is limited to a maximum of 32,000 characters or 64,000 bytes.
For more information about Chinese or Korean character set restrictions for the Teradata
Database, refer to International Character Set Support (B035-1132).
56
Teradata FastLoad Reference
Chapter 2: Using Teradata FastLoad
Programming Considerations
AXSMOD
When an AXSMOD is used, Teradata FastLoad will pass the session character set as an
attribute to the AXSMOD for its possible use (most AXSMODs will not make any use of this
information).
The attribute value will be a variable length character string consisting of the character set
name; the attribute name will be CHARSET_NAME.
Unicode® Character Sets
UTF-8 and UTF-16 are two of the standard ways of encoding Unicode character data. The
UTF-8 client character set supports UTF-8 encoding. Currently Teradata Database supports
UTF-8 characters that can consist of from one to three bytes. The UTF-16 client character set
supports UTF-16 encoding. Currently, the Teradata Database supports the Unicode 5.1
standard, where each defined character requires exactly 16 bits.
For restrictions imposed by Teradata Database on the use of UTF-8 or UTF-16 character set,
see International Character Set Support (B035-1132).
UTF-8 Character Sets
Teradata FastLoad supports UTF-8 character set on network-attached platforms and IBM z/
OS.
On IBM z/OS, the job script must be in Teradata EBCDIC when using UTF-8 client character
set. Teradata FastLoad translates commands in the job script from Teradata EBCDIC to UTF-8
during the load. Be sure to examine the definition in International Character Set
Support (B035-1132) to determine the code points of any special characters which might be
required in the job script. Different versions of EBCDIC do not always agree as to the
placement of these characters. Refer to the mappings between Teradata EBCDIC and Unicode
in International Character Set Support (B035-1132).
UTF-16 Character Sets
Teradata FastLoad supports UTF-16 character set on network-attached platforms. In general,
the command language and the job output should be the same as the client character set used
by the job. However, for user’s convenience and because of the special property of Unicode,
the command language and the job output are not required to be the same as the client
character set when using UTF-16 character set. When using UTF-16 character set, the job
script and the job output can either be in UTF-8 or UTF-16 character set. This is provided by
specifying runtime parameters “-i” and “-u” when the job is invoked.
ANSI/SQL DateTime Specifications
The ANSI/SQL DATE, TIME, TIMESTAMP and INTERVAL DateTime data types in Teradata
SQL CREATE TABLE statements, can be used. Specify them as column/field modifiers in
INSERT statements. However, certain restrictions should be noted:
•
Teradata FastLoad Reference
ANSI/SQL DateTime data types cannot be used when specifying the column/field names
in a DEFINE command.
57
Chapter 2: Using Teradata FastLoad
Programming Considerations
•
ANSI/SQL DateTime data types must be converted to fixed-length CHAR data types when
specifying the column/field names in the DEFINE command.
For a description of the fixed-length CHAR representations for each DATE, TIME,
TIMESTAMP and INTERVAL data type specification, see Table 27 on page 96.
Checkpoint Tradeoffs
Though the checkpoint feature substantially enhances Teradata FastLoad restart operations, it
also reduces the speed of the Teradata FastLoad job. Always consider the following factors
when deciding how often to specify checkpoints:
•
Each checkpoint temporarily halts the multiple session data transfer feature of Teradata
FastLoad, thereby decreasing the speed of the Teradata FastLoad job.
•
For each checkpoint, Teradata FastLoad waits for each session to complete sending its
current request, which interrupts the data transfer operation.
•
The record size and the size of the Teradata Database influence how often checkpoints
should be specified. On a smaller Teradata Database, specify checkpoints:
•
Every 50,000 records if each record is more then 4 KB
•
Every 100,000 records if each record is less than 4 KB
On a larger Teradata Database, specify higher (less frequent) checkpoint values.
Checkpoint Support with Access Modules
When an AXSMOD is used, Teradata FastLoad will pass the checkpoint value as an attribute
to the AXSMOD for its possible use. The attribute value will be a string containing the ASCII
encoding of the decimal textual representation of the checkpoint value. A value of “0”
indicates that Teradata FastLoad is not using checkpoints. A file opened by an access module
instance for which the CHECKPOINT_INTERVAL attribute is “0” will not receive a File Get
Position request.
Comments
Teradata FastLoad supports C program language comments. Comments supported for
Teradata FastLoad have the following characteristics:
•
Begin with a forward slash asterisk (/*) character sequence and end with an asterisk
forward slash (*/) sequence. These sequences are the beginning and ending delimiters; all
intervening text is treated as a comment.
•
Will be sent to the Teradata Database
•
Are invalid within string or character literals. A /* within a quoted string is not treated as
the beginning of a comment.
Teradata FastLoad does not support nested comments.
58
Teradata FastLoad Reference
Chapter 2: Using Teradata FastLoad
Programming Considerations
Concurrent Load Utility Tasks
The maximum number of concurrent Teradata FastLoad tasks that can run is variable; the
limit can be controlled by a system administrator. MaxLoadTasks may be overridden if
Teradata Active System Management (Teradata ASM) is active.
For the most up-to-date information on concurrent task limits, see the description of the
MaxLoadTask parameter of the DBSControl utility inUtilities (B035-1102). Additional
information is available in the Teradata Dynamic Workload Manager User Guide (B035-2513).
If a Teradata FastLoad job exceeds recommended limits, Teradata FastLoad returns a 2633
error message indicating that too many loads are running. In this case, the utility retries until:
•
It can execute the task.
•
It reaches the TENACITY hours time limit specified by the BEGIN EXPORT command or
runtime parameter.
Data Conversion Factors
Be aware of the following when using Teradata FastLoad to perform data conversion:
•
When using the DEFINE command to change the data type specification of source data
before inserting it into the Teradata FastLoad table on the Teradata Database, only one
type conversion per column can be specified.
Note: Teradata FastLoad cannot be used to define a column with an arithmetic
expression. For example, Teradata FastLoad will not calculate a monthly salary column
from yearly salary data.
•
When using Teradata FastLoad to load and convert data from decimal to character, define
the length of the column into which the data will be inserted to be larger than the size of
the source data in order to accommodate the sign byte. Otherwise, the Teradata Database
generates an error message as follows:
3944: Data length is invalid for the data type.
For details on data types and data conversions, see SQL Data Types and Literals (B035-1143).
Valid Data Conversion Example
The following valid example converts character data to integer data, assuming that column b
is of type INTEGER:
DEFINE a (char(10)) file= . . . ;
INSERT INTO table1 (b) VALUES (:a(integer)) ;
Valid Redundant Conversion Example
The following valid example converts data in zoned decimal format to type decimal format,
assuming that column d is of type DECIMAL (9,2):
DEFINE b (char(9)) file= . . . ;
INSERT INTO Table1 (d) VALUES (:b (decimal(9,2)));
Note: Redundant conversions can be used, as a reminder that a data conversion is taking
place.
Teradata FastLoad Reference
59
Chapter 2: Using Teradata FastLoad
Programming Considerations
Invalid Data Conversion Example
The following data conversion example is invalid because it requests two conversions, from
character to decimal, and then from decimal to integer, assuming that column b is of type
INTEGER:
DEFINE a(char(10)) file= . . . ;
INSERT INTO table1 (b) VALUES (:a (decimal(5,2))) ;
If loading Decimal(5,0) data, the length of the destination character column must be defined
as Char(6) instead of Char(5). The following data conversion example is invalid because the
column size is not large enough to hold all of the data:
DEFINE a(decimal(5,0)) file = .;
INSERT INTO table (b) VALUES (: a(char(5));
Error Limits
When specifying the ERRLIMIT value, consider the number and type of errors expected from
the Teradata FastLoad job.
•
If the Teradata FastLoad job is expected to encounter no errors or very few errors, then
specify an ERRLIMIT value that is low.
•
If the Teradata FastLoad job is expected to encounter many errors that are considered
allowable, then specify an ERRLIMIT value that is high.
Nonunique Index Sorts
If a Teradata FastLoad table is defined with a nonunique primary index, the performance of
the Teradata FastLoad job can be enhanced by not using the index value to sort the input data.
Duplicate Rows
Teradata FastLoad does not load duplicate rows, as in MULTISET tables. If Teradata FastLoad
is used to load a target table defined as MULTISET, the utility will discard any duplicate rows.
If duplicate rows must be loaded, consider using MultiLoad.
Range Constraints
Range constraints are data description phrases that are entered into the Teradata SQL
CREATE TABLE statement that limit the range of acceptable values for a column. Since the
range constraint checks occur while Teradata FastLoad inserts data into the Teradata FastLoad
table, the number of range constraints in the Teradata FastLoad job script has a direct impact
on the performance of Teradata FastLoad.
Range Constraint Types
Table 12 list the two types of range constraints, explicit and implicit.
60
Teradata FastLoad Reference
Chapter 2: Using Teradata FastLoad
Programming Considerations
Table 12: Range Constraint Types
Constraint Type
Example
Explicit
The Salary column range of between 1 and 99000.00, as shown in the following
CREATE TABLE example.
Implicit
The DeptNo column range of ZZ9, as shown in the following CREATE TABLE
example.
Range Constraint Examples
The following Teradata SQL CREATE TABLE statement shows the two types of range
constraint phrases for the Salary and DeptNo columns:
CREATE TABLE Employee
(EmpNo INTEGER FORMAT ‘ZZZZ9’,
Name VARCHAR (12) CASESPECIFIC TITLE
‘Employee//Name’, DeptNo INTEGER FORMAT ‘zz9’
TITLE ‘Dept#’,
Salary DECIMAL (7,2) BETWEEN 1 AND 99000.00
FORMAT ‘ZZ,ZZ9.99’)
UNIQUE PRIMARY INDEX (EmpNo);
Before inserting each row in the Employee table, Teradata FastLoad checks to verify that the
value for:
•
Salary is in the range of 1 to 99000.00
•
DeptNo is between -999 and 999
If it is known that the values for the DeptNo column are always in the range of -999 to 999,
then they can improve the performance of the Teradata FastLoad job by removing the ZZ9
phrase from the CREATE TABLE statement in the Teradata FastLoad job script.
Record Mode Load Anomaly
When loading data in Record Mode into a NULLABLE DATE field, if the source data is a
binary integer of value zero, then the Teradata Database sets the field to NULL, not to zero.
UNIX Signals
If Teradata FastLoad is running in a UNIX operating system, be aware of the UNIX signals
used by Teradata FastLoad. Teradata FastLoad UNIX signals cannot be used in any module or
routine programmed for use with Teradata FastLoad. Doing so causes an error in Teradata
FastLoad.
Teradata FastLoad uses the following UNIX signals:
•
SIGINT (interrupt signal)
•
SIGQUIT (quit signal)
•
SIGTERM (terminate signal)
•
SIGUSR1 (user signal 1)
Teradata FastLoad Reference
61
Chapter 2: Using Teradata FastLoad
Programming Considerations
Note: Signals are predefined messages sent between two UNIX OS processes to communicate
the occurrence of unexpected external events, or exceptions. Aborting a Teradata FastLoad
session while Teradata FastLoad is in the middle of processing a job is an example of an
exception. In this scenario, Teradata FastLoad uses the UNIX signals to trap the abort
command, disconnect all sessions, do any necessary cleanup, and then terminate in an orderly
manner.
Restrictions and Limitations
The following sections describe restrictions and limitations relevant for programming with
the Teradata FastLoad utility.
Session Limits
The value specified with the SESSIONS command is not the only factor that limits the
number of sessions that Teradata FastLoad establishes with the Teradata Database. The other
limiting factors are:
•
The Teradata Database limit of one session per AMP.
•
The platform limit on the maximum number of sessions per application.
This value is defined in the Communications Processor (COP) Interface software file,
CLISPB.DAT, under the MaxSess variable.
The TDP SET MAXSESSIONS command can be used to specify a platform limit. The
default limit is equal to the server MAXSESS.
•
The limit of the network protocol software on network-attached systems.
When invoking Teradata FastLoad, the actual session limit is determined by whichever
limiting factor is encountered first.
Space Requirements and Limitations
Always estimate the final size of the Teradata FastLoad table, and make sure that the
destination database on the Teradata Database has enough space to accommodate the
Teradata FastLoad job. If the database that owns the Teradata FastLoad table or the error tables
runs out of space, the Teradata Database returns an error message and Teradata FastLoad
pauses your Teradata FastLoad job. When this happens, allocate more space to the database
before restarting the job.
Join Index Restrictions
Teradata FastLoad does not maintain join indexes. Teradata FastLoad cannot be used to load
data to tables with an associated join index on a Teradata Database. In this case, first drop the
join index, then recreate it after running the Teradata FastLoad job.
Note: Teradata FastLoad does not support hash and join indexes.
Foreign Key References Limitation
Teradata FastLoad does not support foreign key references in target tables. Attempting a
Teradata FastLoad task or any action against a target table defined with a foreign key
constraint produces an error condition.
62
Teradata FastLoad Reference
Chapter 2: Using Teradata FastLoad
Programming Considerations
Secondary Indexes Limitation
Teradata FastLoad does not support target tables defined with secondary indexes. Attempting
a Teradata FastLoad task against a target table defined with secondary indexes produces an
error condition.
To load such a table, first drop the secondary indexes. Then load the table and recreate the
secondary indexes.
Or, alternatively, if only nonunique secondary indexes (NUSI) are involved, consider using
MultiLoad.
Note: Teradata FastLoad does not support secondary indexes of any kind.
Referential Integrity Limitation
Attempting a Teradata FastLoad task or any action against tables with [referential
integrity|defined triggers] produces an error condition.
Defined Triggers Limitation
Attempting a Teradata FastLoad task or any action against tables with [referential
integrity|defined triggers] produces an error condition.
Normalized Table Restrictions
Teradata FastLoad is not allowed on a normalized PI table when PI column is part of the
ignore column list.
Teradata FastLoad is not allowed on a normalized NoPI table.
Loading No Primary Index Tables
A NoPI Table is a table that has no primary index. These tables can be used as staging tables
where data is always appended to the table, making population of the table generally faster
than that of a traditional table containing a primary index.
Note: FastLoad is generally faster than TD TPump whether the target table is PI or NoPI. TD
TPump has a bigger performance improvement with NoPI but it is still slower than FastLoad.
The “table must be empty” restriction applies if the target table is a NoPI table. FastLoad
cannot load into a populated NoPI table. See the No Primary Index discussion in SQL Data
Definition Language (B035-1144).
FastLoad can load Primary Index (PI) tables defined as MULTISET, but all duplicate rows are
discarded, the target table is treated as if it were a SET table. NoPI tables are inherently
MULTISET, since no duplicate row checking is possible (duplicate rows can be on different
AMPs). Therefore, when FastLoad targets a NoPI table, no check is made for duplicate rows,
and duplicate rows are not discarded.
Conventions for Quotes
Strings that contain single quotes or double quotes are not allowed to span records (lines);
therefore, ensure that all quoted strings are limited to a single line.
Teradata FastLoad Reference
63
Chapter 2: Using Teradata FastLoad
INMOD and Notify Exit Routines
INMOD and Notify Exit Routines
This section provides information about how to use input modification (INMOD) and notify
exit routines.
Overview
This section describes the different types of routines and when to use them.
INMOD Routines
The term INMOD is an acronym for input modification routines. These are user exit routines
that Teradata FastLoad and other load/export utilities can call to provide enhanced processing
functions on input records before they are sent to the Teradata Database.
When an INMOD routine is specified in the DEFINE command, it is the named routine,
rather than a data source, that provides the input data records that Teradata FastLoad loads
into the Teradata FastLoad table on the Teradata Database.
Use INMOD routines to:
•
Select and validate data records before passing them to the Teradata Database
•
Convert fields in data records before passing them to the Teradata Database
•
Read data directly from different database system data sets, such as IMS, TOTAL, and so
on, and create and pass a consolidated data record to the Teradata Database without using
an intermediate tape or disk data set.
Notify Exit Routines
A notify exit routine specifies a predefined action to be performed whenever certain
significant events occur during a Teradata FastLoad job.
Notify exit routines are especially useful in operator-free environments where job scheduling
relies heavily on automation to optimize system performance.
For example, by writing an exit routine in C (without using CLIv2) and using the NOTIFY
command, a routine to detect whether a Teradata FastLoad job succeeds or fails, how many
records were loaded, what the return code is for a failed job, and so on can be provided.
Programming Considerations for Routines
This section describes programming languages supported for each type of routine, as well as
other related considerations.
Programming Languages
Teradata FastLoad is written in:
64
•
IBM C for mainframe-attached z/OS client systems
•
C for network-attached UNIX and Windows client systems
Teradata FastLoad Reference
Chapter 2: Using Teradata FastLoad
INMOD and Notify Exit Routines
In all cases, INMOD and notify exit routines are dynamically loaded at run time, rather than
link-edited into the Teradata FastLoad module. The programming languages listed in Table 13
can be used to write INMOD and notify exit routines, depending on the platform that runs
Teradata FastLoad.
Table 13 lists the programming languages supported.
Table 13: Programming Languages Supported by Platform and Type of User-Developed Routine
Platform
INMOD Routine
Notify Exit Routine
Write
z/OS
IBM C, Assembler,
COBOL, or PL/I
IBM C
• INMOD routines in IBM C
• Notify exit routines in IBM C
UNIX OS, Windows
C
C
• INMOD and notify exit
routines in C
Note: Although it is neither certified nor supported, INMOD routines in COBOL can be
written on network-attached client systems if the Micro Focus COBOL for UNIX compiler is
used. However, INMOD and OUTMOD routines written in C/C++ are strongly
recommended.
Programming Structure
Table 14 defines the structure, by programming language, for communicating between
Teradata FastLoad and an INMOD or notify exit routines.
Table 14: Programming Structures for Teradata FastLoad/INMOD Communication
Routine Language
Programming Structure
C
struct {
long Status;
long RecordLength;
char buffer[32004];
}
COBOL
01 INMOD-RECORD.
03 RETURN-CODE PIC S9(9) COMP.
03 RECORD-LENGTH PIC S9(9) COMP.
03 RECORD-BODY PIC X(32004).
In each structure, the records must be constructed so that the left-to-right order of the data
field corresponds to the order of the field names specified in the DEFINE command.
Routine Entry Points
Table 15 shows the entry points for INMOD routines.
Teradata FastLoad Reference
65
Chapter 2: Using Teradata FastLoad
INMOD and Notify Exit Routines
Table 15: Entry Points for INMOD Routines
Routine Language
Entry Point
IBM C on z/OS platforms
dynamn
C on all supported workstation platforms
BLKEXIT
COBOL and PL/I
BLKEXIT
Addressing Mode on z/OS Systems
Use either 31-bit or 24-bit addressing for INMOD routines on mainframe-attached systems.
The 31-bit mode provides access to more memory, which enhances performance for Teradata
FastLoad jobs with a large number of sessions.
Use the following linkage parameters to specify the addressing mode when building INMOD
routines for z/OS systems:
•
AMODE(31) for 31-bit addressing
•
AMODE(24) for 24-bit addressing
Teradata FastLoad/INMOD Routine Interface
Teradata FastLoad exchanges information with an INMOD routine by passing an address that
points to a three-value structure: status code, length, and body.
Status Code
Status code is the 32-bit signed binary value that carries information in both directions.
Table 16 explains the six status codes used by the Teradata FastLoad-to-INMOD interface.
Table 16: Teradata FastLoad--to--INMOD Interface Status Codes
Value
Description
0
Teradata FastLoad is calling for the first time.
Teradata FastLoad expects the INMOD routine to return a data record.
Note: At this point, the INMOD routine should perform its initialization tasks before
sending a data record to Teradata FastLoad.
1
Teradata FastLoad is calling, not for the first time.
Teradata FastLoad expects the INMOD routine to return a data record.
2
The client system has been restarted.
The INMOD routine should reposition to the last checkpoint.
Teradata FastLoad is not expecting the INMOD routine to return a record.
Note: This is a one-time call, and Teradata FastLoad does not issue a subsequent call
with a status code value of zero.
66
Teradata FastLoad Reference
Chapter 2: Using Teradata FastLoad
INMOD and Notify Exit Routines
Table 16: Teradata FastLoad--to--INMOD Interface Status Codes (continued)
Value
Description
3
A checkpoint has been written.
The INMOD routine should remember the checkpoint position.
Teradata FastLoad does not expect the INMOD routine to return a record.
4
The Teradata Database has failed.
The INMOD routine should reposition to the last checkpoint.
Teradata FastLoad is not expecting the INMOD routine to return a record.
Note: This is a one-time call, and Teradata FastLoad does not issue a subsequent call
with a status code value of zero.
5
The Teradata FastLoad job has ended.
The INMOD routine should perform any required cleanup tasks.
Note: This condition only applies to network-attached client systems.
Table 17 describes the two status codes used by the INMOD-to-Teradata FastLoad interface.
Table 17: INMOD-to-Teradata FastLoad Interface Status Codes
Status Code
Description
0
a record is being returned as the Body value
any nonzero value
the INMOD routine is at an end-of-file condition
Length
Length is a 32-bit signed binary value that the INMOD routine uses to specify the length, in
bytes, of the data record.
The INMOD routine can use a length value of zero to indicate an end-of-file condition.
Body
Body is the area where the INMOD routine places the data record.
The maximum record length depends on the release/version level of the Teradata Database.
Teradata FastLoad neither checks nor enforces record length restrictions on data provided by
the INMOD routine. The record length, therefore, must not exceed the capability of the
Teradata Database.
Caution:
To prevent data corruption, INMOD routines that cannot comply with these protocols should
terminate if they encounter a restart code 2, 3, or 4. To support proper Teradata FastLoad
restart operations, INMOD routines must save and restore checkpoint information as
described here. If the INMOD saves checkpoint information in some other manner, a
subsequent restart/recovery operation could result in data loss or corruption.
Teradata FastLoad Reference
67
Chapter 2: Using Teradata FastLoad
INMOD and Notify Exit Routines
Teradata FastLoad/Notify Exit Routine Interface
Teradata FastLoad accumulates operational information about specific events that occur
during a Teradata FastLoad job. If the Teradata FastLoad job script includes a NOTIFY
command with an EXIT option specification, Teradata FastLoad calls the named notify exit
routine and passes to it when the specific events occur:
•
An event code to identify the event
•
Specific information about the event
Table 18 lists the event codes and describes the data that Teradata FastLoad passes to the notify
exit routine for each event. For a description of the events associated with each level of
notification (low, medium, and high), see “NOTIFY” on page 137.
Note: To support future enhancements, always ensure that notify exit routines ignore invalid
or undefined event codes, and that they do not cause Teradata FastLoad to terminate
abnormally.
Note: Beginning with the release of Teradata Tools and Utilities 14.10, Teradata FastLoad
supports 8-byte row counters. To display 8-byte counters in Notify events, use the new event
with 64 as described in Table 18 and use the keyword EXIT64 rather than EXIT in the
NOTIFY command.
Note: Beginning with the release of Teradata Tools and Utilities 14.10, Teradata FastLoad
supports the EON feature. To display large object names in Notify events, use the new event
with EON as described in Table 18 and use the keyword EXITEON rather than EXIT in the
NOTIFY command. The keyword EXITEON automatically supports the keyword EXIT64.
Table 18: Events Passed to the Notify Exit Routine
Event
Code
Event
Event Description
Data Passed to the Notify Exit Routine
0
Initialize
Successful processing of the
NOTIFY command
• Version ID length—4-byte unsigned integer
• Version ID string—32-character (maximum) array
• Utility ID—4-byte unsigned integer
• Utility name length—4-byte unsigned integer
• Utility name string—32-character (maximum) array
• User name length—4-byte unsigned integer
• User name string—64-character (maximum) array
• Optional string length—4-byte unsigned integer
• Optional string—80-character (maximum) array
1
2
68
File or INMOD open
Phase 1 begin
Successful processing of the
DEFINE command that
specifies the file or INMOD
routine name.
• File name length—4-byte unsigned integer
• File name—256-character (maximum) array
The beginning of the insert
• Table name length—4-byte unsigned integer
phase, where the table name is • Table name—128-character (maximum) array
specified by the INSERT
• Database name—90 byte character array
statement.
Teradata FastLoad Reference
Chapter 2: Using Teradata FastLoad
INMOD and Notify Exit Routines
Table 18: Events Passed to the Notify Exit Routine (continued)
Event
Code
Event
Event Description
Data Passed to the Notify Exit Routine
3
Checkpoint
Checkpoint information has
been written to the restart log
table.
• Record number—4-byte unsigned integer
4
Phase 1 end
The CHECKPOINT
LOADING END request has
successfully completed after
the end of the insert phase.
• Records read—4-byte unsigned integer
• Records skipped—4-byte unsigned integer
• Records rejected—4-byte unsigned integer
• Records sent to the Teradata Database—4-byte
unsigned integer
5
Phase 2 begin
The END LOADING
command is about to be sent
to the Teradata Database.
No data accompanies the phase 2 begin event code
6
Phase 2 end
Processing of the END
LOADING command
completed successfully.
• Records loaded—4-byte unsigned integer
7
Error table 1
Processing of the SEL
COUNT(*) request
completed successfully for the
first error table.
• Number of rows—4-byte unsigned integer
8
Error table 2
Processing of the SEL
COUNT(*) request
completed successfully for the
second error table.
• Number of rows—4-byte unsigned integer
9
Teradata Database
restart
Teradata FastLoad received a No data accompanies the Teradata Database restart event
crash message from the
code
Teradata Database or from the
CLIv2.
10
CLIv2 error
Teradata FastLoad received a • Error code—4-byte unsigned integer
CLIv2 error.
11
Teradata Database error Teradata FastLoad received a • Error code—4-byte unsigned integer
Teradata Database error that
will produce an exit code of
12.
Note: Not all Teradata
Database errors cause this
event. An Error 3807, for
example, while trying to drop
or create a table does not
terminate Teradata
FastLoad.
12
Exit
Teradata FastLoad Reference
FastLoad is terminating.
• Exit code—4-byte unsigned integer
69
Chapter 2: Using Teradata FastLoad
INMOD and Notify Exit Routines
Table 18: Events Passed to the Notify Exit Routine (continued)
Event
Code
Event
Event Description
Data Passed to the Notify Exit Routine
13
Check point 64
Checkpoint information has
been written to the restart log
table.
• Record number—8-byte unsigned integer been
written to the restart log table.
14
Phase I end 64
The CHECKPOINT
LOADING END request has
successfully completed after
the end of the insert phase.
•
•
•
•
15
Phase 2 end 64
Processing of the END
LOADING command
completed successfully.
• Records loaded—8-byte unsigned integer
16
Error Table 1 64
Processing of the SEL
COUNT(*) request
completed successfully for the
first error table.
• Number of rows—8-byte unsigned integer
17
Error Table 2 64
Processing of the SEL
COUNT(*) request
completed successfully for the
second error table.
• Number of rows—8-byte unsigned integer
18
Initialize EON
Successful processing of the • Version ID length—4-byte unsigned integer
NOTIFY command
• Version ID string—32-character (maximum) array
•
•
•
•
•
•
•
19
Phase 1 begin EON
Records read—8-byte unsigned integer
Records skipped—8-byte unsigned integer
Records rejected—8-byte unsigned integer
Records sent to the Teradata Database—8-byte
unsigned integer
Utility ID—4-byte unsigned integer
Utility name length—4-byte unsigned integer
Utility name string—32-character (maximum) array
User name length—4-byte unsigned integer
User name string—a character pointer
Optional string length—4-byte unsigned integer
Optional string—80-character (maximum) array
The beginning of the insert
• Table name length—4-byte unsigned integer
phase, where the table name is • Table name—a character pointer
specified by the INSERT
• Database name—a character pointer
statement.
Teradata FastLoad Sample INMOD Routines
Teradata FastLoad software includes two sample INMOD routines that demonstrate how to
write an INMOD routine using the C programming language.
Table 19 describes these sample routines.
70
Teradata FastLoad Reference
Chapter 2: Using Teradata FastLoad
INMOD and Notify Exit Routines
Table 19: Sample INMOD Routines
Routine
Description
BLKEXITR.C
Retrieves records from a data source and supplies them to Teradata
FastLoad. It runs continuously until it reaches EOF.
Note: The BLKEXITR.C sample INMOD routine supports Teradata
FastLoad restart operations.
BLKEXIT.C
Generates data internally and passes the records to a Teradata FastLoad
job for processing. To use this sample INMOD routine, supply a Teradata
FastLoad job to load the data to the Teradata Database.
Note: The BLKEXIT.C sample INMOD routine does not support
Teradata FastLoad restart operations.
The next two subsections provide sample Teradata FastLoad job scripts for calling the sample
Teradata FastLoad INMOD routines. As required, each job script includes a Teradata FastLoad
DEFINE command that specifies the INMOD option.
These jobs can execute either interactively or in batch, as described earlier in this chapter.
For a complete listing of each sample INMOD routine, see Appendix C: “INMOD and Notify
Exit Routine Examples.”
Calling BLKEXIT.C
The following Teradata FastLoad job script calls the BLKEXIT.C sample INMOD routine:
SESSIONS 1 ;
LOGON tdpid/username,password ;
DROP TABLE Fastest ;
DROP TABLE Fasterr1 ;
DROP TABLE Fasterr2 ;
CREATE TABLE FastTest
(Column1 Integer Format ’9(5)’
NOT NULL BETWEEN 1 AND 9999) UNIQUE PRIMARY INDEX
(Column1) ;
DEFINE Test(Integer) INMOD=Blkexit ;
BEGIN LOADING FastTest ERRORFILES Fasterr1,
Fasterr2 ;
INSERT INTO FastTest (Column1) VALUES
(:test);
END LOADING ;
LOGOFF ;
Calling BLKEXITR.C
The following Teradata FastLoad job script calls the BLKEXITR.C sample INMOD routine:
* use your own account and password here. *
LOGON sia1/weekly, weekly;
DROP TABLE Error_1;
DROP TABLE Error_2;
DROP TABLE BlkExit;
CREATE TABLE BlkExit
Counter(Integer),
c2(smallint),
Teradata FastLoad Reference
71
Chapter 2: Using Teradata FastLoad
Teradata FastLoad Job Scripts
c3(integer),
c4(smallint),
c5(integer)
UNIQUE PRIMARY INDEX (Counter);
BEGIN LOADING BlkExit ErrorFiles Error_1, Error_2;
DEFINE Counter(Integer),
c2(smallint),
c3(integer),
c4(smallint),
c5(integer)
INMOD = BLKEXIT;
INSERT INTO BlkExit (Counter,
c2,
c3,
c4,
c5
)
VALUES (:Counter,
:c2,
:c3,
:c4,
:c5
);
END LOADING;
LOGOFF;
Creating Custom INMOD Routines
To meet specific system needs, either write custom INMOD routines, or modify the sample
Teradata FastLoad INMOD routines to:
•
Select only records that meet specific criteria
•
Convert certain fields to a different data type
•
Perform other functions, as required
Whenever a new INMOD routine is created, or modify an existing the new or modified
routine must be compiled and linked into a shared object for use by Teradata FastLoad.
Note for UNIX operating system users: Teradata FastLoad 6.0 and later uses dynamic linking
to load INMOD routines at run time. As a result, any INMOD routines created or modified
under earlier versions of the utility must be recompiled and re-linked.
For procedures and examples of compiling and linking INMOD routines, see Appendix C:
“INMOD and Notify Exit Routine Examples.”
Teradata FastLoad Job Scripts
This section describes the contents of the Teradata FastLoad job script and explains how to
write one.
72
Teradata FastLoad Reference
Chapter 2: Using Teradata FastLoad
Teradata FastLoad Job Scripts
Definition
A Teradata FastLoad job script, or program, is a set of Teradata FastLoad commands and
Teradata SQL statements that actually load the data from the input data source or INMOD
routine into the Teradata FastLoad table on the Teradata Database.
Before running Teradata FastLoad in batch mode, a standard input file must be created that
contains the Teradata FastLoad job script. Then use the appropriate input file specification to
identify the standard input file when invoking Teradata FastLoad:
•
< infilename specification on network-attached client systems
•
SYSIN DDNAME specification on mainframe-attached z/OS client systems
Enter Teradata FastLoad Commands
Teradata FastLoad accepts the Teradata FastLoad commands and a subset of Teradata SQL
statements described in Chapter 3: “Teradata FastLoad Commands.”
Though the command keywords are all shown in uppercase characters in the syntax diagrams,
the commands are not case sensitive. Use either uppercase or lowercase letters when typing the
commands.
When running Teradata FastLoad in interactive mode, wait for the Teradata FastLoad
command prompt before entering a Teradata FastLoad command:
FastLoad - Enter your command:
Teradata FastLoad Job Script Example
The following example Teradata FastLoad job script provides an overview of a typical Teradata
FastLoad operation:
SESSIONS 4;
RECORD 100 THRU 100000;
ERRLIMIT 25;
LOGON tdpid/userid,password
DROP TABLE FastTable;
DROP TABLE Error1;
DROP TABLE Error2;
CREATE TABLE FastTable, NO FALLBACK
( ID INTEGER, UFACTOR INTEGER, MISC CHAR(42))
PRIMARY INDEX(ID);
DEFINE ID (INTEGER), UFACTOR (INTEGER), MISC (CHAR(42))
FILE=FileName;
SHOW;
BEGIN LOADING FastTable ERRORFILES Error1,Error2
CHECKPOINT 10000;
INSERT INTO FastTable (ID, UFACTOR, MISC) VALUES
(:ID, :MISC);
END LOADING;
LOGOFF;
Table 20 describes the commands used in this sample script.
Teradata FastLoad Reference
73
Chapter 2: Using Teradata FastLoad
Teradata FastLoad Job Scripts
Table 20: FastLoad Entering Commands
Command
Description
SESSIONS
Directs Teradata FastLoad to log on to the Teradata Database for up to four
sessions.
RECORD
Directs Teradata FastLoad to begin reading data at record 100 in the input
data source and stop reading records at record 100,000.
ERRLIMIT
Directs Teradata FastLoad to stop processing when 25 errors occur.
LOGON
Logs the specified user on to the Teradata Database for up to four sessions, as
specified in the SESSIONS command.
DROP TABLE
Makes sure that the Teradata FastLoad table and the two error tables do not
already exist on the Teradata Database.
Teradata FastLoad will not run if the two error tables exist from a prior job.
And, though the Teradata FastLoad table can be an existing table, it must be
empty. Thus, instead of deleting an existing Teradata FastLoad table, use the
DELETE statement to remove all the rows.
CREATE TABLE
Creates the Teradata FastLoad table on the Teradata Database.
DEFINE
Defines the data fields in each record and identifies the input data source.
This command corresponds to a Teradata SQL USING clause.
SHOW
Displays the active definitions for the input data source and the field names
that were specified in the previous DEFINE command. This command allows
the exact definitions in effect during the Teradata FastLoad operation to be
verified.
BEGIN LOADING
Begins the loading phase of the Teradata FastLoad job. This command
specifies the name of the Teradata FastLoad table and the two error tables,
and, in this example, specifies that a checkpoint be taken every 10,000
records.
INSERT
Sends input data records to the Teradata Database and inserts rows into the
Teradata FastLoad table. Teradata FastLoad processes the data records by:
1 Packaging them into large data blocks
2 Transferring them to the Teradata Database, where they are distributed to
the AMPs
END LOADING
Directs the Teradata Database to redistribute (hash) the rows of data on the
AMPs and store them in the Teradata FastLoad table.
Upon successful completion, Teradata FastLoad returns a status message that
displays the total number of:
• Records read
• Records skipped
• Records sent to the Teradata Database
• Records inserted as rows in the Teradata FastLoad table
• Error records in the two error tables
• Duplicate rows
74
Teradata FastLoad Reference
Chapter 2: Using Teradata FastLoad
Run Multifile Teradata FastLoad Jobs
Table 20: FastLoad Entering Commands (continued)
Command
Description
LOGOFF
Logs off all Teradata FastLoad sessions, terminates Teradata FastLoad, and
presents the system command prompt.
Run Multifile Teradata FastLoad Jobs
This section covers the things to consider when running a multifile Teradata FastLoad job.
A multifile Teradata FastLoad job is one that loads the Teradata FastLoad table with input data
from more than one source. Do this by:
1
Using a LOGOFF command, with no END LOADING command, to intentionally pause
the Teradata FastLoad job after the job has been initiated and loaded the data from the first
source.
2
Successively restarting and pausing the Teradata FastLoad job to load the data from each
subsequent input source.
3
Using an END LOADING command to terminate the Teradata FastLoad job after the data
from the last input source has been loaded.
Note: When running a multifile Teradata FastLoad job, the Teradata FastLoad table and the
two error tables remain locked and are not available to users until the END LOADING
command is used to conclude the Teradata FastLoad job.
The following subsections provide example Teradata FastLoad job scripts that show how to
load a table called Fast_Table with data stored in three different input data sources (FirstFile,
SecondFile, and ThirdFile). “Command Functions” on page 76 describes each of the
commands in the three job scripts.
For a complete example using all loading commands, see Appendix C: “INMOD and Notify
Exit Routine Examples.”
Initiate the Teradata FastLoad Job and Loading the First Data Source
The following Teradata FastLoad job script begins the multifile Teradata FastLoad job and
loads data from the data source named FirstFile into the Teradata FastLoad table:
LOGON tdpid/jwt,smart ;
DROP TABLE Fast_Table ;
DROP TABLE Error_1 ;
DROP TABLE Error_2 ;
CREATE TABLE Fast_Table (col1 (char(5),
col2(integer)) ;
BEGIN LOADING Fast_Table ERRORFILES Error_1, Error_2 ;
DEFINE Field_1 (char(5)), Field_2 (integer)
FILE = FirstFile ;
INSERT INTO Fast_Table (col1, col2) VALUES
(:Field_1, :Field_2) ;
LOGOFF ;
Teradata FastLoad Reference
75
Chapter 2: Using Teradata FastLoad
Run Multifile Teradata FastLoad Jobs
Note: These examples do not use a RECORD command to specify a range of records in the
input data sources. By default, they load the entire contents of each source into the Teradata
FastLoad table. To specify a range of records, use a RECORD command before each INSERT
statement in multifile Teradata FastLoad job scripts.
Restart the Teradata FastLoad Job and Loading the Second Data Source
The following Teradata FastLoad job script loads the Teradata FastLoad table shown in the
previous example with data from the data source named SecondFile:
LOGON tdpid/jwt,smart ;
BEGIN LOADING Fast_Table ERRORFILES Error_1, Error_2 ;
DEFINE Field_1 (char(5)), Field_2 (integer)
FILE = SecondFile ;
INSERT INTO Fast_Table (col1, col2)
VALUES (:Field_1, :Field_2) ;
LOGOFF ;
Restart the Teradata FastLoad Job and Loading the Third Data Source
The following Teradata FastLoad job script loads the Teradata FastLoad table shown in the
previous examples with data from the data source named ThirdFile:
LOGON tdpid/jwt,smart ;
BEGIN LOADING Fast_Table ERRORFILES Error_1, Error_2 ;
DEFINE Field_1 (char(5)), Field_2 (integer)
FILE = ThirdFile ;
INSERT INTO Fast_Table (col1, col2)
VALUES (:Field_1, :Field_2) ;
LOGOFF ;
Terminate the Teradata FastLoad Job
Sending the END LOADING command is the last step in a multifile Teradata FastLoad job.
Include it in the job used to process the last input data source, or submit it as a separate job
script.
The following Teradata FastLoad job script issues the END LOADING command in a separate
job script:
LOGON tdpid/jwt,smart ;
BEGIN LOADING Fast_Table ERRORFILES Error_1, Error_2 ;
END LOADING ;
LOGOFF ;
Command Functions
Table 21 describes the multifile Teradata FastLoad job scripts from the preceding example.
76
Teradata FastLoad Reference
Chapter 2: Using Teradata FastLoad
Run Multifile Teradata FastLoad Jobs
Table 21: Teradata FastLoad Terminating Commands
Command
Description
BEGIN LOADING
Specifies the name of the Teradata FastLoad table and the two error tables,
and starts the loading phase of the Teradata FastLoad job
After executing the BEGIN LOADING command in the Teradata FastLoad
job script that initiates the job and loads the first data source, the Teradata
FastLoad response signifies the start of a new job:
BEGIN LOADING COMPLETE
In subsequent multifile Teradata FastLoad job scripts, the Teradata FastLoad
response is:
FastLoad is continuing
a multifile job.
CREATE TABLE
Creates a new Teradata FastLoad table, ensuring it is empty when the
Teradata FastLoad job initiates
DEFINE
Identifies the field in each record to be inserted into the Teradata FastLoad
table and specifies the name of the input data source
The field names should be the same for all of the multifile Teradata FastLoad
job scripts.
The FILE= attribute, however, successively identifies a different source data
source for each portion of the multifile Teradata FastLoad job.
DROP TABLE
Makes sure that the Teradata FastLoad table and the two error tables do not
already exist on the Teradata Database when the Teradata FastLoad job
initiates
END LOADING
Distributes all of the rows to the Teradata FastLoad table
The following message indicates that the command executed successfully:
END LOADING COMPLETE
Note: At this point, the Teradata FastLoad table and the two error tables are
unlocked and available to any user with the appropriate privileges.
INSERT
Transfers the data records from the specified input data source to the
Teradata FastLoad table
The Teradata Database automatically takes a checkpoint after the last record
of each insert operation.
Teradata FastLoad Reference
77
Chapter 2: Using Teradata FastLoad
Handling Teradata FastLoad Errors
Table 21: Teradata FastLoad Terminating Commands (continued)
Command
Description
LOGOFF
Pauses the Teradata FastLoad operation when executed before an END
LOADING command, which is the case for each multifile Teradata FastLoad
job script that identifies a new data source
Because the LOGOFF command is entered during the loading phase,
Teradata FastLoad responds with the message:
FastLoad Paused.
When a Teradata FastLoad job is paused during the loading phase, the tables
remain locked and cannot be accessed until Teradata FastLoad executes the
END LOADING command.
When submitted after an END LOADING command, as in the last multifile
Teradata FastLoad job script, the LOGOFF command terminates the
Teradata FastLoad job. In this case, Teradata FastLoad displays:
logoff;
and an end-of-job status message, such as:
**** 20:36:06
**** 20:36:11
Seconds'
.
.
.
**** 20:36:11
Logging off all sessions
Total processor time used = '0.499203
Start :
End
:
Highest
FDL4818
Thu Sep 20 20:35:22 2012
Thu Sep 20 20:36:11 2012
return code encountered = '0'.
FastLoad Terminated
and then presents the system command prompt.
LOGON
Logs user JWT on to the Teradata Database
Handling Teradata FastLoad Errors
This section provides information about handling Teradata FastLoad errors.
Teradata FastLoad Error Conditions
While processing a Teradata FastLoad job script, Teradata FastLoad tracks and records
information about five types of error conditions that cause the Teradata Database to reject an
input data record. Table 22 describes these error conditions.
Table 22: Error Conditions that Cause Teradata Database to Reject an Input Data Record
78
Error Conditions
Description
Constraint violations
Records from the input file that do not comply with the range
constraints that were specified in the CREATE TABLE statement.
Conversion errors
Records from the input file that fail a data type conversion that
was specified in the DEFINE command.
Duplicate rows
Records from the input file that are exact duplicates of existing
rows.
Teradata FastLoad Reference
Chapter 2: Using Teradata FastLoad
Handling Teradata FastLoad Errors
Table 22: Error Conditions that Cause Teradata Database to Reject an Input Data Record (continued)
Error Conditions
Description
Unavailable AMP conditions
Records from the input file that are destined for a nonfallback
table on an AMP that is down.
Unique primary index violations
Records from the input file that have a value for the unique
primary index field that already exists, but is not a duplicate row.
Note: Teradata FastLoad does not store duplicate rows in an error table.
Additionally, when operating in batch mode, Teradata FastLoad returns the system error
codes for error conditions encountered during Teradata FastLoad operations. (Teradata
FastLoad does not return system error codes when operating in interactive mode.) This
subsection describes the procedures for handling the five types of Teradata FastLoad error
conditions.
See Messages (B035-1096) for more information about system error messages.
Error Recording
Teradata FastLoad stores the input data records related to constraint violations, conversion
errors, unavailable AMP conditions, and unique primary index violations in the two error
tables specified in the BEGIN LOADING command.
Table 23 lists error tables.
Table 23: Error Tables
Table
Stores Records That Produced These Error Types
errortname1
• Constraint violations
• Conversion errors
• Unavailable AMP conditions
These types of errors always occur during the loading phase of the
Teradata FastLoad job after executing the BEGIN LOADING command,
but before the END LOADING command.
errortname2
Unique primary index violations
This type of error always occurs during the end-loading phase of the
Teradata FastLoad job after executing the END LOADING command.
Teradata FastLoad discards all records that produce a duplicate row error, but includes the
total number of duplicate rows encountered, along with the total records in each error table,
in the end-of-job status report.
Error Table Formats
Table 24, the first error table, errortname1, has three columns:
Teradata FastLoad Reference
79
Chapter 2: Using Teradata FastLoad
Handling Teradata FastLoad Errors
Table 24: errortname1 Columns
Column
Contains
DataParcel
Entire data record, as provided by the source producer operator
DataParcel is used as the primary index for the first error table. The data
record string can be up to 64,000 bytes, depending on which version of
the DBS the job is run against.
ErrorCode
Teradata Database return code for the error condition, as specified in
Messages (B035-1096)
ErrorFieldName
Name of the data item that caused the error condition, as specified in the
fieldname attribute of the DEFINE command in the Teradata FastLoad
job script
Note: If the length of the data item name is greater than 120 characters,
the DBS will truncate the data item name to the length of 120 characters.
The format of the second error table, errortname2, is identical to that of the Teradata FastLoad
target table.
Correcting Errors
Though the procedures are somewhat different, depending on the error table, correcting
errors is a three-step process, where:
1
The error information is retrieved from the error tables on the Teradata Database.
2
Errors are evaluated and correct ed.
3
Corrected records are inserted into the Teradata FastLoad table.
After the job has completed, another utility, such as BTEQ, must be used to access the
Teradata Database, because Teradata FastLoad only operates on an empty table. The
procedures and examples in the following subsections are performed under BTEQ. They
assume BTEQ has been invoked and logged on to the Teradata Database. For more
information about using BTEQ, see the Basic Teradata Query Reference (B035-2414).
Procedure for Correcting Errors in the First Error Table
Use the following procedure to correct errors recorded in the error table specified as
errortname1:
1
Use the following Teradata SQL statement to retrieve the error code and field name for
each error in the first error table:
SELECT ErrorCode, ErrorFieldName FROM
ErrorCode ;
errortname1 ORDER BY
where errortname1 is the name specified for the first error table.
BTEQ responds with a list of the error codes and the associated field names, formatted as
follows:
***Query completed. 2 rows found. 2 columns returned.
***Total elapsed time was 1 second.
80
Teradata FastLoad Reference
Chapter 2: Using Teradata FastLoad
Handling Teradata FastLoad Errors
ErrorCode
--------2679
2679
ErrorFieldName
-----------------A
A
The values listed in the ErrorCode column are the Teradata Database return codes for each
error condition, as specified in Messages (B035-1096).
The values listed in the ErrorFieldName column are the names of the fields that caused
each error.
2
Use the following BTEQ commands and Teradata SQL statements to retrieve the data
records for each error in the first error table and store them in the specified err.out file on
the client system:
•
If the values in the ErrorCode column indicate that either a constraint violation or a
conversion error occurred, retrieve the DataParcel information in record mode:
.SET RECORDMODE ON
.EXPORT DATA FILE=err.out
SELECT DataParcel FROM errortname1
In record mode, the Teradata Database returns the SELECT statement results in client
computer format, which is usually a hexadecimal dump. Thus, if all of the fields
identified in the Teradata FastLoad DEFINE commands were also specified in the
INSERT statements, the data retrieved from the Teradata FastLoad error table is in the
same format as it was in the original input data source.
•
Otherwise, if the values in the ErrorCode column indicate that the errors were all
caused by unavailable AMP conditions, do not use the RECORDMODE command:
.EXPORT DATA FILE=err.out
SELECT DataParcel FROM errortname1
Caution:
3
Use the ErrorCode and ErrorFieldName information returned in Step 1 and the
DataParcel information returned in Step 2 to determine which records to correct and
reload to the Teradata Database. The methods used to correct the individual error
conditions will vary, depending on the number and types of errors.
4
After the errors have been corrected, use the following BTEQ commands and Teradata
SQL statements to insert the corrected records into the Teradata FastLoad table on the
Teradata Database.
To
Use the
transfer the data to the Teradata Database
BTEQ IMPORT command
define the fields in each record
Teradata SQL USING modifier
insert a record into the Teradata FastLoad
table
Teradata SQL INSERT statement
Do not reference the first two bytes in the INSERT statement for data records that were
exported from the Teradata Database in record mode. Instead, make the first field (variable
parameter) in the USING modifier a dummy SMALLINT field.
When selecting data in record mode, the variable-length columns are all preceded by a
two-byte field whose value indicates the length of the data field. But, because the
Teradata FastLoad Reference
81
Chapter 2: Using Teradata FastLoad
Handling Teradata FastLoad Errors
DataParcel column of the errortname1 table is defined as a variable-length field, the first
two bytes always indicate the length. If this field is not referenced in the INSERT
statement, the Teradata Database ignores this portion of each record in the input data.
5
Repeat steps 2 through 4 as required to resolve all of the errortname1 error conditions.
6
Drop the errortname1 table from the Teradata Database after all of the errors have been
resolved.
Procedure for Correcting Errors in the Second Error Table
Use the following procedure to correct errors recorded in the error table specified as
errortname2:
1
Use the following Teradata SQL statement to retrieve all rows from the second error table:
SELECT * FROM errortname2 ORDER BY cname ;
where:
Syntax Element
Description
cname
Unique primary index for the table
errortname2
Name of the second error table
The BTEQ response is a list of the contents of the second error table, ordered by the values
in the primary index column.
2
Use the following Teradata SQL statement to retrieve each row from the Teradata FastLoad
table that has a primary index value identical to a row retrieved from the second error
table:
SELECT * FROM tname WHERE cname = errorvalue
where:
3
4
82
Syntax Element
Description
cname
Index of the Teradata FastLoad table
errorvalue
index value retrieved from the second error table
tname
Name of the Teradata FastLoad table
Compare the rows selected from the error table with the rows selected from the Teradata
FastLoad table and determine which is correct.
•
If the row selected from the error table is correct, then use a Teradata SQL DELETE
statement to delete the incorrect row from the Teradata FastLoad table, and an INSERT
statement to insert the correct row.
•
If the row selected from the Teradata FastLoad table is correct, then use a Teradata SQL
DELETE statement to delete the corresponding row from the error table.
Repeat Steps 2 and 3 until all rows in the error table are accounted for.
Teradata FastLoad Reference
Chapter 2: Using Teradata FastLoad
Handling RDBMS Retryable and Restartable Error Codes
5
Drop the errortname2 table from the Teradata Database after all errors have been resolved.
Handling RDBMS Retryable and Restartable
Error Codes
Beginning with Teradata Tools and Utilities 14.10, RDBMS returns a list of retryable error
codes:
•
When the user does not have permission on the SYSLIB.DBSRETRYABLEERRORS view,
Teradata FastLoad displays the DBS “no permission” message and an information message
that the internal list of retryable will be used for the job, and sets the job's return code to 4
(assuming there are no other errors for the rest of the job).
•
When Teradata FastLoad 14.10 runs with versions of the Teradata Database prior to 14.10,
Teradata FastLoad displays “RDBMS error 3807: Object
'SYSLIB.DBSRETRYABLEERRORS' does not exist” and “The job will use its internal
retryable error codes,” and the job's return code remains unchanged.
•
In the rare instance that zero rows are returned from the
SYSLIB.DBSRETRYABLEERRORS view, FastLoad displays an information message that
zero rows were returned and that the user that the internal list of retryable errors will be
used for the job, and the job's return code remains unchanged.
•
When one or more rows are returned from the SYSLIB.DBSRETRYABLEERRORS view,
FastLoad does not display any information about the DBS data-related error view, and the
job's return code remains unchanged.
For the detailed information regarding the list of retryable errors codes, see Utilities: Volume 1
(A-K)(B035-1102).
FastLoad TMSM Integration
Teradata Multi-System Manager (TMSM) is the monitoring and control facility for a variety
of Dual Active Solutions offered by Teradata. The expected users of this facility are
administrators of the Enterprise Data Warehouse (EDW) such as Teradata Database
administrators, ETL maintenance staff, systems administrators, or anyone who needs to
monitor and control processes that include, but are not limited to, Teradata Load and Unload
Utilities, Teradata SQL, ETL tools, and Teradata Database.
To integrate with TMSM, FastLoad has been enhanced to collect operational metadata and
event data, obtain the Unit of Work ID (UOW ID) from TMSM for a job, and send such data
to TMSM for monitoring purposes using the “send event” interface as described in the TMSM
Event System API Reference. By default, a FastLoad job will send events to TMSM as long as
TMSM is active. If TMSM is not active, the job will continue to run, except that no events will
be sent to TMSM.
Teradata FastLoad Reference
83
Chapter 2: Using Teradata FastLoad
FastLoad Statistics
Simple ETL process monitoring requires the tracking of the “start” and “end” of the process,
which can include multiple “steps”, each of which represents an activity or event of the process
to be monitored. In terms of FastLoad, a load job can be regarded as such a process.
FastLoad follows the flow required by TMSM:
1
Obtain a system-generated UOW ID from TMSM for a FastLoad job
2
Send a “start” event to TMSM along with the UOW ID
3
Optionally send one or more “step” events to TMSM along with the UOW ID
4
Send an “end” event to TMSM along with the UOW ID
Below is an example of how a FastLoad job sends event messages to TMSM in order for the job
to be monitored:
•
At job start: “Connecting session(s)”
•
At step start of acquisition: “Acquisition begins”
•
At step checkpoint time: “Checkpoint completes”
•
At step end of acquisition: “Acquisition completes”
•
At step end of application: “Application complete”
•
At job end: “Job terminating”
FastLoad Statistics
Performance Statistics
Teradata FastLoad displays:
1) At the end of the Acquisition Phase
Acquisition Phase statistics:
Elapsed time: 00:07:43 (hh:mm:ss)
CPU time:
94.89 Second(s)
MB/sec:
41.19
MB/cpusec:
200.99
The abbreviation "MB/sec"'s longhand is megabytes (Total data FastLoad
sends) per elapsed second.
The abbreviation "MB/cpusec"'s longhand is megabytes( Total data
FastLoad sends) per cpu second.
2) At the end of the application phase:
Application Phase statistics:
Elapsed time: 00:02:43 (hh:mm:ss)
These performance statistics could be varied on different platforms.
An example of statistics output:
FastLoad displays at the end of Acquisition:
84
Teradata FastLoad Reference
Chapter 2: Using Teradata FastLoad
FastLoad Statistics
**** 11:53:09 Acquisition Phase statistics:
Elapsed time: 00:00:13 (in hh:mm:ss)
CPU time:
1.69 Seconds
MB/sec:
4.25
MB/cpusec:
32.68
FastLoad displays at the end of Application Phass:
**** 11:53:13 Application Phase statistics:
Elapsed time: 00:00:04 (in hh:mm:ss)
Teradata FastLoad Reference
85
Chapter 2: Using Teradata FastLoad
FastLoad Statistics
86
Teradata FastLoad Reference
CHAPTER 3
Teradata FastLoad Commands
This chapter provides detailed descriptions of the Teradata FastLoad commands and the
Teradata FastLoad version of the INSERT statement which can be executed from the Teradata
FastLoad utility.
Teradata FastLoad accepts both Teradata FastLoad commands and a subset of Teradata SQL
statements. The Teradata FastLoad commands perform session control and data handling
activities. The Teradata SQL statements define and manipulate the data stored in the Teradata
Database.
Experienced users can also refer to the simplified command descriptions in the Teradata Tools
and Utilities Command Summary (B035-2401). This book provides the syntax diagrams for
each Teradata client utility.
Syntax Notes
The following syntax rules apply when using Teradata FastLoad commands:
•
Commands may begin with a period, but do not have to begin with a period.
•
If there is no leading period, then there must be a semicolon at the end.
•
If the command has a leading period, it must all be on one line. Commands that begin
with a period cannot span multiple lines.
•
Although a semicolon character should always be used to signify the end of a Teradata
FastLoad command, it is not required for simple commands such as SHOW and
SESSIONS.
•
The ending semicolon character is optional for Teradata FastLoad commands that both
begin with a period and are specified on a single line.
•
Teradata SQL statements must not have a leading period and must always end with a
semicolon.
•
If the command contains unbalanced double or single quotes, the command must be
started with a period and on a single line. It can terminate with semi-colon (;).
Object Name Restrictions
The following Syntax rules apply to object names:
•
Teradata FastLoad Reference
A semicolon cannot be used in an object name because a semicolon is used to designate
the end of a Teradata FastLoad command.
87
Chapter 3: Teradata FastLoad Commands
Syntax Notes
•
30 bytes cannot be used as the quoted object name length for the database that does not
support EON and 128 characters cannot be used as the quoted object name length for the
database that supports EON.
•
Dictionary (UDD) object names cannot be used.
See Appendix A: “How to Read Syntax Diagrams” for a description of how to read the syntax
diagrams used in this book.
Geospatial Data Restrictions
The following rule applies to geospatial data:
•
Teradata FastLoad does not support ST_Geometry geospatial data.
LOB Data Restrictions
The following rule applies to LOB data:
•
Teradata FastLoad does not support LOB data.
NUMBER Data Restrictions
The following restrictions apply to NUMBER:
88
•
Nullif and apply-where clause support includes NUMBER is not included.
•
SET and ACCEPT commands cannot assign and accept NUMBER.
Teradata FastLoad Reference
Chapter 3: Teradata FastLoad Commands
AXSMOD
AXSMOD
Purpose
The AXSMOD command specifies the name and optional initialization string for an access
module that provides data to the Teradata FastLoad utility on network-attached client
systems. For more information about specific access modules, see the Teradata Tools and
Utilities Access Module Reference (B035-2425).
Syntax
;
AXSMOD name
"init-string"
2411A014
where
Syntax Element
Description
init-string
Optional initialization string for the access module.
The initialization string can contain double quotes, but not single quotes.
name
Name of the access module file to be used to import data. These access
modules include:
• OLE DB Access Module (oledb_axsmod.dll on Windows platforms)
• Named Pipes Access Module
• Teradata WebSphere® MQ Access Module (client version)
• Teradata WebSphere® MQ Access Module (server version)
• Teradata Access Module for JMS (libjmsam.so on AIX, Solaris SPARC,
Solaris Opteron, Linux and z/Linux platforms, libjmsam.sl on HP-UX pa
RISC and HP-UX Itanium platforms, and libjmsam.dll on Windows
platforms)
See the Teradata Tools and Utilities Access Module Reference (B035-2425) for
the name of the access module file for each platform.
A personal shared library file name can be used if custom access module is
used.
The AXSMOD option is not required for importing disk files on either
network-attached or mainframe-attached client systems, or magnetic tape
files on mainframe-attached client systems. It is required for importing
magnetic tape and other types of files on network-attached client systems.
To specify the OLE DB Access Module, Named Pipes Access Module, or the
WebSphere MQ Access Module for specific platforms, see the Teradata Tools
and Utilities Access Module Reference (B035-2425).
Teradata FastLoad Reference
89
Chapter 3: Teradata FastLoad Commands
AXSMOD
Usage Notes
Table 25 describes the things to consider when using the AXSMOD command.
Table 25: Usage Notes for AXSMOD
Topic
Usage Notes
When to Use the
AXSMOD
Command
The AXSMOD command is not required for loading:
Command
Placement
• Disk files on either network or mainframe-attached client systems
• Magnetic tape files on mainframe-attached client systems
It is required for loading magnetic tape and other types of files on
network-attached client systems.
When using an access module, the AXSMOD command must be stated before
the DEFINE command in the Teradata FastLoad job script. If the AXSMOD
command is stated after the DEFINE command, Teradata FastLoad
terminates with an error message.
Example
The following example provides the volume set name and owner as initialization parameters
for the REELlibrarian access module, called libprmrl.so:
AXSMOD libpmrl.so “-V FastLoad -O lmn” ;
where
90
•
libpmrl.so is the name of the access module
•
FastLoad is the name of the volume set
•
lmn is the owner of the volume set
Teradata FastLoad Reference
Chapter 3: Teradata FastLoad Commands
BEGIN LOADING
BEGIN LOADING
Purpose
The BEGIN LOADING command:
•
Identifies the Teradata FastLoad table to receive data transferred from a data source on the
client computer.
•
Specifies the names of the two error tables.
•
Starts a new Teradata FastLoad job or restarts a job that has been paused.
•
Locks the tables specified in the command so that users cannot access them until an END
LOADING command is executed. (After the end loading phase completes, any user with
the appropriate privileges can access these tables.)
•
Optionally:
•
Indicates how often checkpoints are taken.
•
Identifies the presence of null indicators.
Syntax
BEGIN LOADING
A ERRORFILES
dbname.
dbname.
errortname1,
dbname.
tname1
A
errortname2
B
;
B
NODROP
CHECKPOINT integer
DATAENCRYPTION value
INDICATORS
2411C011
where
Syntax Element
Description
dbname
Name of the database in which each table resides.
Teradata FastLoad uses the current default database if a database name is
not included with the table name specifications.
To refer to more than one database, include the database name with the
table name specifications.
tname1
Name of the Teradata FastLoad target table to receive the data from the
client system.
A name that duplicates the name of an existing table cannot be used
unless restarting a paused Teradata FastLoad job. The name must be a
new table name.
Teradata FastLoad Reference
91
Chapter 3: Teradata FastLoad Commands
BEGIN LOADING
Syntax Element
Description
errortname1
Name of the first error table.
A name that duplicates the name of an existing table cannot be used
unless restarting a paused Teradata FastLoad job. The name must be a
new table name.
errortname2
Name of the second error table.
A name that duplicates the name of an existing table cannot be used
unless restarting a paused Teradata FastLoad job. The name must be a
new table name.
CHECKPOINT
Enables the checkpoint option.
integer
Value that specifies the number of rows transmitted to the Teradata
Database between checkpoints using the CHECKPOINT keyword to
enable the checkpoint option.
(The checkpoint option is not enabled if it is not included the
CHECKPOINT keyword in the BEGIN LOADING command.)
For more information about specifying the CHECKPOINT integer value,
see Table 26.
INDICATORS
Places null indicator bits at the front of each record.
The number of fields in each record determines how many bytes contain
null indicators, as described in the Indicators topic under “Usage Notes”
for this command.
Note: The INDICATORS specification cannot be used when loading
records in variable-length text format. If the Teradata FastLoad job script
specifies INDICATORS in the BEGIN LOADING command and the
VARTEXT option in the SET RECORD command, the utility terminates
with an error message.
Note: INDICATORS mode is not recommended when using TEXT
record format. Please use UNFORMATTED record format instead.
DATAENCRYPTION
value
Enables data encryption for a Teradata FastLoad job.
The options for value are:
• ON = The requests will be encrypted.
• OFF = The requests will not be encrypted.
This option will apply only to the BEGIN LOADING request and the
requests after the BEGIN LOADING command.
Using this option overwrites the data encryption settings specified by
both the runtime parameters and in the floadcfg.dat configuration file.
NODROP
Retains the error table at the end of a job, even if the error table is empty.
Caution:
When using this option, be careful to manually drop all error
tables before running additional jobs that use the same tables.
Failure to do so results in Teradata Database errors.
(Default) If this option is not specified, the error table is dropped at the
end of a job if the error table is empty.
92
Teradata FastLoad Reference
Chapter 3: Teradata FastLoad Commands
BEGIN LOADING
Usage Notes
Table 26 describes the things to consider when using the BEGIN LOADING command.
Table 26: Usage Note for BEGIN LOADING
Topic
Usage Notes
Required Privileges
The user ID that is logged in to the Teradata FastLoad job must have:
• SELECT and INSERT privileges on the Teradata FastLoad table
• CREATE TABLE privilege on the database that owns the two error
tables
Restart Log Table
To run Teradata FastLoad, the following privileges must be available to
user PUBLIC on the Teradata FastLoad restart log table
(SYSADMIN.FASTLOG):
•
•
•
•
Error Tables
Descriptions
DELETE
INSERT
SELECT
UPDATE
Teradata FastLoad creates two error tables when executing the BEGIN
LOADING command:
• The error table specified by errortname1 contains records that were
rejected because of an error other than unique primary index or
duplicate row violation.
• The error table specified by errortname2 contains records that violated
the unique primary index constraint.
Duplicate Records
The Teradata Database ignores duplicate records, which are not inserted in
either error table.
Reusing Table Names
If an error table has one or more rows, it is not dropped from the Teradata
Database at the end of a Teradata FastLoad job. To reuse the names
specified for the error tables, use the DROP TABLE statement to remove
the tables from the Teradata Database.
For more information, see “Error Recording” on page 79.
Checkpoints
The CHECKPOINT option defines points in a job where Teradata
FastLoad pauses to record that the Teradata Database has processed a
specified number of input records. When checkpoints are used, the entire
Teradata FastLoad job need not be run if it stops before completion.
Teradata FastLoad uses the checkpoint information in the restart log table
to determine the restart location.
When specifying the integer value for the CHECKPOINT option:
• If zero is entered as the value, Teradata FastLoad processes the BEGIN
LOADING command as if a CHECKPOINT value is not entered.
• If a value is not entered, or if a value is entered that is not an integer, the
Teradata Database returns a syntax error.
For more information, see “Checkpoint Tradeoffs” on page 58.
Teradata FastLoad Reference
93
Chapter 3: Teradata FastLoad Commands
BEGIN LOADING
Table 26: Usage Note for BEGIN LOADING (continued)
Topic
Usage Notes
Indicators
Indicators are bits at the beginning of a record that identify the nulled
fields in the record. When INDICATORS in the BEGIN LOADING
command are specified, Teradata FastLoad expects the first bytes of the
record to contain an indicator bit for each record field.
If the INDICATORS option is set but indicator bits are not entered at the
beginning of the record, Teradata FastLoad assumes that the first field
contains indicator bytes and loads the record incorrectly.
Indicator bits must be stored in a minimum of eight-bit bytes. For
example, if a record contains from one to eight fields, one byte is required
for the indicator bits. If a record contains from nine to 16 fields, two bytes
are required for the indicator bits, and so on.
Set unused bits in indicator bytes to zero.
Indicator Bit Positions
The positions of the indicator bits correspond to the record fields. The first
bit in the byte is the indicator for the first field in the record.
If an indicator bit is set to 1, the Teradata Database nulls the
corresponding field when the record is loaded. If the indicator bit is set to
zero, the Teradata Database loads the data specified for that field.
The following figure shows a record containing indicators.
These fields are nulled
01001000
00000000
F1 F2 F3
F4 F5 F6 F7 F8
....
F16
2411A015
See the following documents for more information about indicator bits
and the INDICATORS option:
• Teradata Call-Level Interface Version 2 Reference for MainframeAttached Systems (B035-2417)
• Teradata Call-Level Interface Version 2 Reference for Network-Attached
Systems (B035-2418)
Example
The following command example starts a Teradata FastLoad job:
BEGIN LOADING Employee ERRORFILES ErrTable1,ErrTable2 CHECKPOINT 50000;
If the command is used to start a new job, then Teradata FastLoad responds:
BEGIN LOADING COMPLETE!
When BEGIN LOADING restarts a partially completed job, then Teradata FastLoad responds:
FastLoad is continuing a paused job!
If BEGIN LOADING is used to continue a multifile job, then Teradata FastLoad responds:
FastLoad is continuing a multifile job!
94
Teradata FastLoad Reference
Chapter 3: Teradata FastLoad Commands
CLEAR
CLEAR
Purpose
The CLEAR command cancels the definitions that were specified by a previous DEFINE
command, including the input data source.
Syntax
CLEAR
;
2411A016
Usage Notes
The CLEAR command is:
•
Local to Teradata FastLoad
•
Not transmitted to the Teradata Database
•
Intended for online use
Example
The following command example cancels the field definitions and input data source or
INMOD name of a previous DEFINE command:
CLEAR ;
Completion Message
The Teradata FastLoad completion message is:
Warning: All previous column and file definitions cleared!
If the SHOW command now is entered, the result is blank.
Teradata FastLoad Reference
95
Chapter 3: Teradata FastLoad Commands
DATEFORM
DATEFORM
Purpose
The DATEFORM command specifies the form of the DATE data type specifications for the
Teradata FastLoad job.
Syntax
DATEFORM
INTEGERDATE
ANSIDATE
;
2411A017
where
Syntax Element
Description
INTEGERDATE
Keyword that specifies integer DATE data types for the Teradata FastLoad
job.
This is the default Teradata DATE data type specification for Teradata
FastLoad jobs if a DATEFORM command is not entered.
ANSIDATE
Keyword that specifies ANSI fixed-length CHAR(10) DATE data types for
the Teradata FastLoad job.
Usage Notes
Table 27 describes the things to consider when using the DATEFORM command.
Table 27: Usage Notes for DATEFORM
Topic
Usage Notes
Command Placement
and Frequency
Only use one DATEFORM command.
Data Type Conversions
When the ANSIDATE specification is used, ANSI/SQL DateTime data
types must be converted to fixed-length CHAR data types when
specifying the column/field names in the Teradata FastLoad DEFINE
command.
The command must be entered before the LOGON command.
See Table 28 for a description of the fixed-length CHAR representations
for each DATE, TIME, TIMESTAMP, and INTERVAL data type
specification.
Release Applicability
96
The ANSIDATE specification is valid for Teradata FastLoad jobs.
Teradata FastLoad Reference
Chapter 3: Teradata FastLoad Commands
DEFINE
DEFINE
Purpose
The DEFINE command:
•
Describes the fields in a record of input data that are inserted in the Teradata FastLoad
table
•
Identifies the name of the input data source or use of an INMOD routine
Teradata FastLoad translates the DEFINE command specifications into a Teradata SQL
USING clause, and links the USING clause with a subsequent INSERT statement. The
Teradata FastLoad job must include DEFINE specifications for each field in a record from the
input data source before executing an INSERT statement.
Note: Though every field used in an INSERT statement must have been previously defined in
a DEFINE command, every field so defined need not be used in an INSERT statement.
Teradata FastLoad also uses the DEFINE command data type specifications to determine the
format and record length of stored data.
Syntax
A
DEFINE
,
DEF
fieldname (datatype
)
,NULLIF
value
=
;
A
= filename
FILE
DDNAME
INMOD = name
2411A018
where
Syntax Element
Description
fieldname
Name of a field in a record of the input data source, from left to right.
You cannot use FILE, DDNAME, or INMOD for a fieldname.
Note: Some or all of the field names can be omitted if the accompanying
INSERT statement uses the “wild card” table name specification
(tname.*) for all of the columns in the table. For the syntax of the tname.*
specification, see the INSERT statement description later in this chapter.
Teradata FastLoad Reference
97
Chapter 3: Teradata FastLoad Commands
DEFINE
Syntax Element
Description
datatype
Keyword or keyword phrase that specifies the data type of the field.
For details on data types and data conversions, see SQL Data Types and
Literals (B035-1143).
The valid data types for records in a Teradata FastLoad table are:
BIGINT
BYTE (n)
BYTEINT
CHARACTERS (n)
DATE
DECIMAL (x) or DECIMAL (x,y)
FLOAT
GRAPHIC (n)
INTEGER
LONG VARCHAR
LONG VARGRAPHIC
NUMBER (p)
NUMBER
NUMBER(p,s)
NUMBER(*,s)
PERIOD(DATE)
PERIOD(TIME[(n)])
PERIOD(TIME[(n)] WITH TIME ZONE)
PERIOD(TIMESTAMP[(n)])
PERIOD(TIMESTAMP[(n)] WITH TIME ZONE)
SMALLINT
VARBYTE (n)
VARCHAR (n)
VARGRAPHIC (n)
NULLIF=value
Keyword phrase that loads the Teradata Database field with a null value if
the defined client field contains the specified value.
The value specification can be 1 to 80 bytes in length, and it pertains only
to BYTE, CHAR and GRAPHIC types. It does not pertain to integer and
float data types.
The NULLIF option occurs only with the DEFINE command.
98
Teradata FastLoad Reference
Chapter 3: Teradata FastLoad Commands
DEFINE
Syntax Element
Description
FILE=filename
Keyword phrase specifying the name of the data source that contains the
input data.
fileid must refer to a regular file. Specifically, pipes are not supported.
Note: For mainframe-attached systems, replace FILE with DDNAME for
z/OS. DDNAME is the sequential data set for z/OS.
Note: In UNIX and Windows, the fileid FastLoad supports file name of
size of up to 1024.The filename can contain the following characters:
parenthesis, comma, or equal sign.
INMOD=name
Keyword phrase specifying the name of a user exit routine that provides
input data records.
For more information about using INMOD routines, see “INMOD and
Notify Exit Routines” on page 64.
Note: If INMOD module output messages to stdout, the character set
that INMOD uses is independent of the character set that Teradata
FastLoad uses; the display on stdout can be of mixed character sets. For
example, IMMOD can output messages in ASCII and Teradata FastLoad
can output messages in UTF-16.
Note: In UNIX and Windows, FastLoad supports the INMOD name of
size of up to 1024. The INMOD name can contain the following
characters: parens, comma, or equal sign.
Usage Notes
The following table describes the things to consider when using the DEFINE command.
•
Data Type Descriptions
Depending on the data type phrase of the CREATE TABLE statement, Teradata FastLoad
stores data with CHAR(n) and VARCHAR(n) data type specifications as follows:
•
•
•
When the DEFINE command data type attribute is CHAR(n) and the:
•
CREATE TABLE datadesc attribute is CHAR(n), Teradata FastLoad stores the data
in fixed-length format, entire field.
•
CREATE TABLE datadesc attribute is CHAR(m), Teradata FastLoad stores the data
in fixed-length format, padded if m > n, truncated if m < n.
•
CREATE TABLE datadesc attribute is VARCHAR(m), Teradata FastLoad stores the
data in variable-length format with blanks trimmed.
When the DEFINE command datatype attribute is VARCHAR(n) and the:
•
CREATE TABLE datadesc attribute is VARCHAR(m), Teradata FastLoad stores the
data in variable-length format, no padding, blanks not trimmed.
•
CREATE TABLE datadesc attribute is CHAR(m), Teradata FastLoad stores the data
in padded or truncated format, as required.
Input Length and Field Descriptions
Table 28 lists the input length and field description for each data type specification.
Teradata FastLoad Reference
99
Chapter 3: Teradata FastLoad Commands
DEFINE
Note: In a UTF-16 session, a character size is 2 bytes. For CHAR(n) or VARCHAR(n) field
of the CREATE TABLE, the corresponding field size in DEFINE command must be
double, that is CHAR(n*2) or VARCHAR(n*2) respectively.
Note: In a UTF-8 session, a character size is from 1 to 3 bytes. For CHAR(n) or
VARCHAR(n) field of the CREATE TABLE, the corresponding field size in DEFINE
command must be triple, that is CHAR(n*3) or VARCHAR(n*3) respectively.
Table 28: Input Length and Field Descriptions
Data Type
Length
Description
BIGINT
8 bytes
64-bit signed binary
BYTE(n)
n bytes
n bytes
BYTEINT
1 byte
8-bit signed binary
CHAR, CHARS(n), and
CHARACTERS(n)
n bytes
n ASCII characters
DATE
4 bytes
32-bit integer in YYYMMDD format as a decimal value
Note: If a DATEFORM command has been used to
specify ANSIDATE as the DATE data type, Teradata
FastLoad internally converts each DATE field to a
CHAR(10) field.
DECIMAL(x) and DECIMAL(x,y)
1, 2, 4, 8, or 16 bytes for
network;
packed decimal for
mainframe
128-bit double precision, floating point
For more information on the DECIMAL data type, see
SQL Data Types and Literals (B035-1143).
FLOAT
8 bytes
64-bit, double precision, floating point
GEOSPATIAL DATA
maximum 64000
FastLoad does not support Geospatial data represented
by LOBs.
INTEGER
4 bytes
32-bit, signed binary
LONG VARCHAR
m + 2 characters where
m = 32000
16-bit integer, count m, followed by m ASCII
characters
Caution: LONG VARCHAR is interpreted as
VARCHAR (64000), which means that the
combination of the client-side session
character set and the server-side storage
character set can cause a LONG VARCHAR
specification in a DML USING clause to
mean something other than
VARCHAR(64000). Therefore, it is
recommended that LONG VARCHAR be
specified only if it is known that both the
server-side and client-side character sets are
single-byte.
100
Teradata FastLoad Reference
Chapter 3: Teradata FastLoad Commands
DEFINE
Table 28: Input Length and Field Descriptions (continued)
Data Type
Length
Description
NUMBER(p,s)
maxsize = 19
The first two forms are fixed point NUMBER. Other
forms are floating point NUMBER.
NUMBER(p)
For more information on the NUMBER data type,
NUMBER see SQL Data Types and
Literals (B035-1143).
or
NUMBER
NUMBER(*,y)
PERIOD(DATE)
max=8 bytes
4-byte, signed integer flipped to client form. This
integer represents a date in the same manner as for a
DATE data type
(Example: (10000*(year-1900)) + (100*month) +
day).
precision (n/a)
The precision value specified must be between 0 and 6
inclusive.
PERIOD(TIME[(n)])
max =12 bytes
Second: 4-byte, signed integer flipped to client form.
This integer represents the number of seconds as a
scaled decimal.
Hour: 1 unsigned byte. This byte represents the
number of hours.
Minute: 1 unsigned byte to client form. This byte
represents the number of minutes
precision n
The precision value specified must be between 0 and 6
inclusive.
PERIOD(TIME[(n)] WITH TIME
ZONE)
max=16 bytes
Second: 4-byte, signed integer flipped to client form.
This integer represents the number of seconds as a
scaled decimal.
Hour: 1 unsigned byte. This byte represents the
number of hours.
Minute: 1 unsigned byte. This byte represents the
number of minutes.
Time Zone_Hour: 1 unsigned byte. This byte
represents the hours portion of the time zone
displacement along with whether the displacement is +
or -.
Time Zone Minute: 1 unsigned byte. This byte
represents the minutes portion of the time zone
displacement.
precision n
The precision value specified must be between 0 and 6
inclusive.
Teradata FastLoad Reference
101
Chapter 3: Teradata FastLoad Commands
DEFINE
Table 28: Input Length and Field Descriptions (continued)
Data Type
Length
Description
PERIOD(TIMESTAMP[(n)])
max=20 bytes
Second: 4-byte, signed integer flipped to client form.
This integer represents the number of seconds as a
scaled decimal.
Year: 2-byte, signed short integer flipped to client form.
This byte represents the year value.
Month: 1 unsigned byte. This byte represents the
month value.
Day: 1 unsigned byte. This byte represents the day of
the month.
Hour: 1 unsigned byte. This byte represents the
number of hours.
Minute: 1 unsigned byte. This byte represents the
number of minutes.
precision n
The precision value specified must be between 0 and 6
inclusive.
PERIOD(TIMESTAMP[(n)] WITH
TIME ZONE)
max=24 bytes
Second: 4-byte, signed integer flipped to client form.
This integer represents the number of seconds as a
scaled decimal.
Year: 2-byte, signed short integer flipped to client form.
This byte represents the year value.
Month: 1 unsigned byte. This byte represents the
month value.
Day: 1 unsigned byte. This byte represents the day of
the month.
Hour: 1 unsigned byte. This byte represents the
number of hours.
Minute: 1 unsigned byte. This byte represents the
number of minutes.
Time Zone_Hour: 1 unsigned byte. This byte
represents the time zone displacement in hours along
with whether the displacement is + or -.
Time Zone Minute: 1 unsigned byte. This byte
represents the time zone displacement in minutes.
precision n
The precision value specified must be between 0 and 6
inclusive.
102
SMALLINT
2 bytes
16-bit, signed binary
VARCHAR(n)
m + 2 bytes where m =
32000
16-bit integer, count m, followed by m ASCII
characters
VARBYTE(n)
m + 2 bytes where m <= 16-bit integer, count m, followed by m bytes of data
n
Teradata FastLoad Reference
Chapter 3: Teradata FastLoad Commands
DEFINE
Table 28: Input Length and Field Descriptions (continued)
Data Type
Length
Description
GRAPHIC(n)
(n*2) bytes, if n is
specified; otherwise, 2
bytes, as n = 1 is
assumed
n double-byte characters (1n is the length of the input
stream in terms of double-byte characters)
VARGRAPHIC(n)
m + 2 bytes where m/2
<= n
2-byte integer followed by m/2 double-byte characters
•
Note: For both VARGRAPHIC and LONG
VARGRAPHIC, m, a value occupying the first two
bytes of the input data, is the length of the input in
bytes, not characters. Each multibyte character-set
character is 2 bytes.
GRAPHIC Data Types
GRAPHIC data types define multibyte character set data. Teradata FastLoad accepts
GRAPHIC data in its input data when a site is defined for kanji.
The DEFINE command supports these types of input data:
•
GRAPHIC
•
VARGRAPHIC
•
LONG VARGRAPHIC
The format to accommodate multibyte character sets and data containing multibyte
characters is:
•
“G” and “XG” for mainframe-attached systems
•
“XG” and the standard character string format for network-attached systems
where
Syntax Element
Description
“G”
G’<....>’
where
“<” and “>” represent the Shift-Out (0x0E) and Shift-In (0x0F)
characters, respectively
• All characters in between must be valid characters for the
character set
• The number of characters within the Shift-Out/Shift-In must
be an even number.
Teradata FastLoad Reference
103
Chapter 3: Teradata FastLoad Commands
DEFINE
Syntax Element
Description
“XG”
‘hhhh’XG
where
• “hh” represents a pair of hexadecimal digits (0-9 and A-F)
• Each pair of hexadecimal digits represents a single GRAPHIC
character.
• Since a maximum of 80 bytes may be specified in a NULLIF
clause, this translates to 80 pairs of hexadecimal digits.
•
NULLIF Data Type Restrictions and Limitations
The NULLIF option nulls a column in a table when the data field is a certain value. A field
with a value of zero, for example, could represent a null date. To meet this requirement,
enter the field definition in the DEFINE command as:
DueDate (DATE, NULLIF =
0)
Teradata FastLoad compares the value entered in the NULLIF clause with the actual data
row. If they match, the utility sets the appropriate indicator bit to ON for the column in
that row and sends both the row and the indicator bit string to the Teradata Database. The
Teradata Database then inserts a null value into the column.
VARCHAR fields are checked to ascertain if the length of the NULLIF string matches the
2-byte length indicator field (in the data row). The values are compared only if they are
equal. If a value is a NULLIF value that equals 10 bytes, Teradata FastLoad compares it
with the first 10 bytes of the corresponding field in the data row.
FastLoad does not support NULLIF clause on period data type columns.
The following minimum and maximum values may not apply in some applications
because of the runtime environment of the individual platform:
Table 29 lists the limitations by data type.
Table 29: Limitations by Data Type
Data Type
Limitations
Examples
BYTE
Up to 80 hexadecimal digits, enclosed by
single quotes and must be an even
number. “XB” is required after the hex
string.
Valid examples:
The total number of bytes must not
exceed two times the number of bytes
specified in the data description.
Invalid examples:
DEFINE T1(BYTE (7), NULLIF = ’01’XB);
DEFINE T1(BYTE (7), NULLIF =
’0123456789ABCD’XB);
DEFINE T1(BYTE (7), NULLIF = ’0’XB) ;
DEFINE T1(BYTE (7), NULLIF = ’0M’XB) ;
Characters must be within the range of
0-9 or A-F.
104
Teradata FastLoad Reference
Chapter 3: Teradata FastLoad Commands
DEFINE
Table 29: Limitations by Data Type (continued)
Data Type
Limitations
Examples
BYTEINT
Must be within the range of -128 to 127.
Valid examples:
DEFINE T1(BYTEINT, NULLIF = 123) ;
DEFINE T1(BYTEINT, NULLIF = -123) ;
Invalid examples:
DEFINE T1(BYTEINT, NULLIF = 129) ;
DEFINE T1(BYTEINT, NULLIF = -129) ;
CHAR,
CHARS, and
CHARACTERS
For normal string format, from 1 to
80 bytes enclosed in single quotes.
For “XC” format, up to 80 pairs of
hexadecimal digits enclosed in single
quotes. This must be an even number and
the “XC” is required. Each pair of
hexadecimal digits corresponds to a single
character.
Valid examples:
DEFINE T1(CHAR (7), NULLIF = ’ ’) ;
DEFINE T1(CHAR (7), NULLIF = ’ABCDEFG’) ;
Invalid example:
DEFINE T1(CHAR (7), NULLIF = ’ABCDEFGH’)
;
DEFINE T1(CHAR (7), NULLIF =
’ABCDEFGH’XC) ;
The total number of characters defined in
the NULLIF option must not exceed the
number of characters specified by the
data definition. Character compare
operations are case sensitive, and apply
only to the first 80 bytes.
DATE
INTEGER format only and cannot be
negative.
Valid examples:
DEFINE T1(INTEGER, NULLIF = 123) ;
DEFINE T1(DATE, NULLIF = 941015) ;
Invalid example:
DEFINE T1(DATE, NULLIF=94-10-15);
DECIMAL
Must be specified by a zoned number less
than or equal to 38 digits.
The number of digits specified in the
NULLIF option must not exceed the
number of digits entered in the data
definition. If the NULLIF value contains
more digits after the decimal point than
are defined, results are undefined.
Valid examples:
DEFINE T1(DECIMAL (5,2), NULLIF = 0)
;
DEFINE T1(DECIMAL
(5,2), NULLIF =
123.45) ;
Invalid example:
DEFINE T1(DECIMAL (6,0), NULLIF =
1234567) ;
Using NULLIF for DECIMAL (other than
zero) may jeopardize a NULLIF match.
Teradata FastLoad Reference
105
Chapter 3: Teradata FastLoad Commands
DEFINE
Table 29: Limitations by Data Type (continued)
Data Type
Limitations
Examples
FLOAT
Floating point values are represented
differently on the Teradata Database and
on some of the other platforms.
Consequently, compare operations with
exported floating point numbers may not
function properly.
A valid example:
DEFINE T1(FLOAT, NULLIF = 123) ;
The format for floating point numbers is:
xxx.xxx or xx.xxE(+/-)yy or xE(+/-)yy or
xxx
The range of valid floating point values
on the various platforms is:
• z/OS: 1E-36 to 1E+35
• UNIX OS:
4.94065645841246544e-324 to
1.79769313486231470e+308
Windows: 3.4e-38 to 3.4e+38
GRAPHIC and
VARGRAPHIC
From 1 to 80 characters and must be
enclosed in single quotes.
For mainframe-attached systems, the
quoted string must be preceded by “G” or
followed by “XG”.
For network-attached systems, the quoted
string may be followed by “XG”, but
cannot be preceded by “G”.
Valid examples on mainframe-attached systems:
DEFINE T1(GRAPHIC(4), NULLIF =
G'<ABCDEFGH>');
DEFINE T1(GRAPHIC(4), NULLIF =
G'<01234567>');
Invalid examples on mainframe-attached systems:
DEFINE T1(GRAPHIC(4), NULLIF =
G'<01234567ABCD>');
DEFINE T1(GRAPHIC(4), NULLIF =
G'ABCD0123');
When using the "G" format, the total
number of characters defined by the
NULLIF clause must not exceed two
times the number of bytes specified in the
data description.
Valid examples on network-attached systems:
When using the "XG" format, the total
number of hexadecimal digits defined by
the NULLIF clause must not exceed four
times the number of bytes specified in the
data description.
Invalid examples on network-attached systems:
The GRAPHIC or VARGRAPHIC string
has this form:
DEFINE T1(GRAPHIC(4), NULLIF =
'ABCDEFGH');
DEFINE T1(GRAPHIC(4), NULLIF =
'01234567');
DEFINE T1(GRAPHIC(4), NULLIF =
G'<ABCDEFGH>');
DEFINE T1(GRAPHIC(4), NULLIF =
G'<01234567>');
G’<ABC>’
where <ABC> is the quoted
string of valid MBC and the
characters < and >
represent 0x0E and 0x0F.
INTEGER
106
Integer fields and date fields must be
within the range of
-2147483648 to 2147483647.
Valid examples:
DEFINE T1(INTEGER, NULLIF = 123) ;
DEFINE T1(DATE, NULLIF = 941015) ;
Teradata FastLoad Reference
Chapter 3: Teradata FastLoad Commands
DEFINE
Table 29: Limitations by Data Type (continued)
Data Type
Limitations
Examples
SMALLINT
Small integer fields must be within the
range of
Valid examples:
DEFINE T1(SMALLINT, NULLIF = 123) ;
DEFINE T1(SMALLINT, NULLIF = -123) ;
-32768 to 32767.
Invalid examples:
DEFINE T1(SMALLINT, NULLIF = 32768)
;
DEFINE T1(SMALLINT, NULLIF = -32769)
;
VARBYTE
80 hex digits, enclosed by single quotes and must be an even number. “XB” is required after the hex
string.
VARCHAR
For normal string format, 1-80 bytes enclosed in single quotes.
For “XC” format, up to 80 pairs of hexadecimal digits, enclosed in single-quotes and must be an even
number. The “XC” is required, and each pair of hexadecimal digits corresponds to a single character.
•
Numeric Fields
The MAXIMUM and MINIMUM range for all fields is the default for each machine
implementation. These values generally agree with the Teradata Database except in cases
where they are limited by the implementation. These values are documented by the
manufacturer or can be found in the “C” language guide for that machine.
•
Using Table Definitions to Define Data
Use either of the following commands to retrieve a list of field names from the referenced
table:
HELP TABLE tname ;
INSERT tname.* ;
Note: Do not use both of these commands together. In addition, do not use the tname.*
version of an INSERT statement when using Unicode data from the following types of
sessions. For more information about this precaution, see Table 36 on page 126.
•
A KATAKANAEBCDIC session
•
A session with a character set name ending with _0I
•
Any session with a character set that does not support multibyte characters (for
example, ASCII, or EBCDIC).
When this format of the INSERT statement, is used Teradata FastLoad constructs a list of
field names from the table definition. During the insert operation, the utility gets the field
names and their data types from the CREATE TABLE statement used to define the table
and from the table definition.
The following example uses an INSERT statement to get a list of field names from a table
called Employee:
LOGON dbc/peterson,veep ;
BEGIN LOADING Employee ERRORFILES
DEFINE FILE = Accounts ;
INSERT Employee.*;
Teradata FastLoad Reference
Etable1, Etable2 ;
107
Chapter 3: Teradata FastLoad Commands
DEFINE
The following example uses a HELP command to get a list of field names from a table
called Employee:
LOGON dbc/peterson,veep ;
BEGIN LOADING Employee ERRORFILES
DEFINE FILE = INFILE ;
HELP TABLE Employee ;
INSERT INTO Employee (EmpNum, Name)
Etable1, Etable2 ;
VALUES (:EmpNum, :Name) ;
Note: With either of these examples, a DEFINE command specifying either the input data
source or INMOD parameter must also be entered.
When a DEFINE command does not fit on one input line, enter either:
•
The command on several lines
or
•
Several DEFINE commands
In either case, Teradata FastLoad concatenates the field definitions until an INSERT
statement is entered.
Also, when more than one DEFINE command is entered, the field definitions in all must
appear in the same order as they do in the input data record, just as they would if they were
entered in a single DEFINE command. And, only a FILE or INMOD declaration can be in
one of the DEFINE commands.
•
Using ANSI/SQL DateTime Data Types
When the DATEFORM command is used to specify ANSIDATE as the DATE data type,
Teradata FastLoad internally converts each DATE field to a CHAR(10) field. All ANSI/SQL
DateTime TIME, TIMESTAMP, and INTERVAL data types must be converted to
fixed-length CHAR data types to specify column/field names in a Teradata FastLoad
DEFINE command.
After the conversion to fixed-length CHAR data type, if UTF-16 session character set is
used, the size should be doubled, and if UTF-8 session character set is used, the size should
be tripled.
For the conversion specifications and format examples for each ANSI/SQL DateTime
specification, see Table 30.
Table 30: ANSI/SQL DateTime Specifications
DATE
Convert to:
CHAR(10)
Format:
Example:
yyyy/mm/dd
1998/01/01
TIME
TIME (n)
Where n is the number of digits after the decimal point, 0 through 6. (Default = 6.)
Convert to:
108
CHAR(8 + n + (1 if n > 0, otherwise 0))
Teradata FastLoad Reference
Chapter 3: Teradata FastLoad Commands
DEFINE
Table 30: ANSI/SQL DateTime Specifications (continued)
Format (n = 0):
Example:
hh:mm:ss
11:37:58
Format: (n = 4):
Example:
hh:mm:ss.ssss
11:37:58.1234
TIMESTAMP
TIMESTAMP (n)
Where n is the number of digits after the decimal point, 0 through 6. (Default = 6.)
Convert to:
CHAR(19 + n + (1 if n > 0, otherwise 0))
Format (n = 0):
Example:
yyyy-mm-dd hh:mm:ss
1998-09-04 11:37:58
Format (n = 4):
Example:
yyyy-mm-dd hh:mm:ss.ssss
1998-09-04 11:37:58.1234
TIME WITH TIME ZONE
TIME (n) WITH TIME ZONE
Where n is the number of digits after the decimal point, 0 through 6. (Default = 6.)
Convert to:
CHAR(14 + n + (1 if n > 0, otherwise 0))
Format (n = 0):
Example:
hh:mm:ss{±}hh:mm
11:37:58-08:00
Format (n = 4):
Example:
hh:mm:ss.ssss {±} hh:mm
11:37:58.1234-08:00
TIMESTAMP WITH TIME ZONE
TIMESTAMP (n) WITH TIME ZONE
Where n is the number of digits after the decimal point, 0 through 6. (Default = 6.)
Convert to:
CHAR(25 + n + (1 if n > 0, otherwise 0))
Format (n = 0):
Example
yyyy-mm-dd hh:mm:ss{±}hh:mm
1998-09-24 11:37:58+07:00
Format (n = 4):
Example:
yyyy-mm-dd hh:mm:ss.ssss{±}hh:mm
1998-09-24 11:37:58.1234+07:00
INTERVAL YEAR
INTERVAL YEAR (n)
Where n is the number of digits, 1 through 4. (Default = 2.)
Convert to:
CHAR(n)
Format (n = 2):
Example:
yy
98
Format (n = 4):
Example:
yyyy
1998
Teradata FastLoad Reference
109
Chapter 3: Teradata FastLoad Commands
DEFINE
Table 30: ANSI/SQL DateTime Specifications (continued)
INTERVAL YEAR TO MONTH
INTERVAL YEAR (n) TO MONTH
Where n is the number of digits, 1 through 4. (Default = 2.)
Convert to:
CHAR(n + 3)
Format (n = 2):
Example:
yy-mm
98-12
Format (n = 4):
Example:
yyyy-mm
1998-12
INTERVAL MONTH
INTERVAL MONTH (n)
Where n is the number of digits, 1 through 4. (Default = 2.)
Convert to:
CHAR(n)
Format (n = 2):
Example:
mm
12
Format (n = 4):
Example:
mmmm
0012
INTERVAL DAY
INTERVAL DAY (n)
Where n is the number of digits, 1 through 4. (Default = 2.)
Convert to:
CHAR(n)
Format (n = 2):
Example:
dd
31
Format (n = 4):
Example:
dddd
0031
INTERVAL DAY TO HOUR
INTERVAL DAY (n) TO HOUR
Where n is the number of digits, 1 through 4. (Default = 2.)
Convert to:
CHAR(n + 3)
Format (n = 2):
Example:
dd hh
31 12
Format (n = 4):
Example:
dddd hh
0031 12
INTERVAL DAY TO MINUTE
INTERVAL DAY (n) TO MINUTE
Where n is the number of digits, 1 through 4. (Default = 2.)
Convert to:
110
CHAR(n + 6)
Teradata FastLoad Reference
Chapter 3: Teradata FastLoad Commands
DEFINE
Table 30: ANSI/SQL DateTime Specifications (continued)
Format (n = 2):
Example:
dd hh:mm
31 12:59
Format (n = 4):
Example:
dddd hh:mm
0031 12:59
INTERVAL DAY TO SECOND
INTERVAL DAY (n) TO SECOND
INTERVAL DAY TO SECOND (m)
INTERVAL DAY (n) TO SECOND (m)
Where
• n is the number of digits, 1 through 4. (Default = 2.)
• m is the number of digits after the decimal point, 0 through 6. (Default = 6.)
Convert to:
CHAR(n + 9 + m + (1 if m > 0, 0 otherwise))
Format (n = 2, m = 0):
Example:
dd hh:mm:ss
31 12:59:59
Format (n = 4, m = 4):
Example:
dddd hh:mm:ss.ssss
0031 12:59:59:59.1234
INTERVAL HOUR
INTERVAL HOUR (n)
Where n is the number of digits, 1 through 4. (Default = 2.)
Convert to:
CHAR(n)
Format (n = 2):
Example:
hh
12
Format (n = 4):
Example:
hhhh
0012
INTERVAL HOUR TO MINUTE
INTERVAL HOUR (n) TO MINUTE
Where n is the number of digits, 1 through 4. (Default = 2.)
Convert to:
CHAR(n + 3)
Format (n = 2):
Example:
hh:mm
12:59
Format (n = 4):
Example:
hhhh:mm
0012:59
INTERVAL HOUR TO SECOND
INTERVAL HOUR (n) TO SECOND
INTERVAL HOUR TO SECOND (m)
INTERVAL HOUR (n) TO SECOND (m)
Teradata FastLoad Reference
111
Chapter 3: Teradata FastLoad Commands
DEFINE
Table 30: ANSI/SQL DateTime Specifications (continued)
Where
• n is the number of digits, 1 through 4. (Default = 2.)
• m is the number of digits after the decimal point, 0 through 6. (Default = 6.)
Convert to:
CHAR(n + 6 + m + (1 if m > 0, 0 otherwise))
Format (n = 2, m = 0):
Example:
hh:mm:ss
12:59:59
Format (n = 4, m = 4):
Example:
hhhh:mm:ss.ssss
0012:59:59.1234
INTERVAL MINUTE
INTERVAL MINUTE (n)
Where n is the number of digits, 1 through 4. (Default = 2.)
Convert to:
CHAR(n)
Format (n = 2):
Example:
mm
59
Format (n = 4):
Example:
mmmm
0059
INTERVAL MINUTE TO SECOND
INTERVAL MINUTE (n) TO SECOND
INTERVAL MINUTE TO SECOND (m)
INTERVAL MINUTE (n) TO SECOND (m)
Where
• n is the number of digits, 1 through 4. (Default = 2.)
• m is the number of digits after the decimal point, 0 through 6. (Default = 6.)
Convert to:
CHAR(n + 3 + m + (1 if m > 0, 0 otherwise))
Format (n = 2, m = 0):
Example:
mm:ss
59:59
Format (n = 4, m = 4):
Example:
mmmm:ss.ssss
0059:59.1234
INTERVAL SECOND
INTERVAL SECOND (n)
INTERVAL SECOND (n,m)
Where
• n is the number of digits, 1 through 4. (Default = 2.)
• m is the number of digits after the decimal point, 0 through 6. (Default = 6.)
112
Convert to:
CHAR(n + m + (1 if m > 0, 0 otherwise))
Format (n = 2, m = 0):
Example:
ss
59
Teradata FastLoad Reference
Chapter 3: Teradata FastLoad Commands
DEFINE
Table 30: ANSI/SQL DateTime Specifications (continued)
Format (n = 4, m = 4):
Example:
•
ssss.ssss
0059.1234
Using Period Data Types
A period is an anchored duration. It represents a set of contiguous time granules within
that duration.
A period is implemented using a Period data type. A period has two elements BEGIN (the
beginning element) and END (the ending element) which have an element type that is one
of the three DateTime data types.
For the CHAR data type, “n” represents the size of the field. For PERIOD data types, this is
not the case. “n” represents the precision (number of digits in the fractional part of
seconds).
PERIOD data is always represented externally in binary format
•
Using ARRAY Data Types
A column that is defined as an ARRAY data type in a Teradata table must be specified as a
VARCHAR data type in the FIELD command. The external representation for an ARRAY
data type is VARCHAR.
The following is a sample Teradata table definition that includes a one-dimensional
ARRAY data type for the COL003 column:
CREATE SET TABLE SOURCE_TABLE ,NO FALLBACK ,
NO BEFORE JOURNAL,
NO AFTER JOURNAL,
CHECKSUM = DEFAULT,
DEFAULT MERGEBLOCKRATIO
(
EMP_ID INTEGER,
EMP_NO BYTEINT,
COL003 SYSUDTLIB.PHONENUMBERS_ARY,
COL004 SYSUDTLIB.DECIMAL_ARY,
COL005 SYSUDTLIB.INTEGER_ARY)
UNIQUE PRIMARY INDEX ( EMP_ID );
The following is a sample definition for the PHONENUMBERS_ARY data type:
CREATE TYPE PHONENUMBERS_ARY AS CHAR(10) CHARACTER SET LATIN ARRAY
[2];
The following is a sample definition for the DECIMAL_ARY data type:
CREATE TYPE DECIMAL_ARY AS DECIMAL(5,2) ARRAY[2];
The following is a sample definition for the INTEGER_ARY data type:
CREATE TYPE INTEGER_ARY AS INTEGER ARRAY[2];
The following is a sample FastLoad field definitions specified with the DEFINE command
for SOURCE_TABLE table:
EMP_ID (INTEGER),
EMP_NO (BYTEINT),
COL003
(VARCHAR(47)),
COL004
(VARCHAR(17)),
COL005
(VARCHAR(25))
Teradata FastLoad Reference
113
Chapter 3: Teradata FastLoad Commands
DEFINE
In the above example, the COL003 column is defined as VARCHAR(47) because it's the
maximum representation for the COL003 column in the table.
The following is the calculation for the maximum representation for the COL003 column:
1 byte for the left parenthesis
+ 1 byte for the single quote
+ 10 to 20 bytes for the first element
+ 1 byte for the single quote
+ 1 byte for the comma
+ 1 byte for the single quote
+ 10 to 20 bytes for the second element
+ 1 byte for the single quote
+ 1 byte for the right parenthesis
---47 bytes
The following is two samples of data for the COL003 column:
Sample data 1: ('3105551234','3105551234')
Sample data 2: ('''''''''''''''''''''','''''''''''''''''''''')
Sample data 1 contains 2 elements of phone numbers. Sample data 2 contains 2 elements
of all single quote characters.
In the above example, the COL004 column is defined as VARCHAR(17) because it's the
maximum representation for the COL004 column in the table.
The following is the calculation for the maximum representation for the COL004 column:
1 byte for the left parenthesis
+ 1 to 7 bytes for the first element
+ 1 byte for the comma
+ 1 to 7 bytes for the second element
+ 1 byte for the right parenthesis
---17 bytes
The following is two samples of data for the COL004 column:
Sample data 1: (-123.45,888.10)
Sample data 2: (+123.45,-888.10)
In the above example, the COL005 column is defined as VARCHAR(25), because it's the
maximum representation for the COL005 column in the table.
The following is the calculation for the maximum representation for the COL005 column:
1 byte for the left parenthesis
+ 1 to 11 bytes for the first element
+ 1 byte for the comma
+ 1 to 11 bytes for the first element
114
Teradata FastLoad Reference
Chapter 3: Teradata FastLoad Commands
DEFINE
+ 1 byte for the right parenthesis
---25 bytes
The following is two samples of data for the COL005 column:
Sample data 1: (-2147483648,+2147483647)
Sample data 2: (0,0)
Use the Teradata SQL "HELP TYPE" command to find out the maximum length for the
ARRAY data type. For example, the information for the sample PHONENUMBERS_ARY,
DECIMAL_ARY, and INTEGER_ARY ARRAY data types can look as follows:
help type PHONENUMBERS_ARY;
*** Help information returned. One row.
*** Total elapsed time was 1 second.
Name PHONENUMBERS_ARY
Internal Type A1
External Type CV
Max Length
47
Array(Y/N) Y
Dimensions
1
Element Type CF
UDT Name ?
Array Scope [1:2]
Total Digits
?
Fractional Digits
?
Contains Lob N
Ordering F
Ordering Category M
Ordering Routine LOCAL
Cast N
Transform Y
Method Y
Char Type 1
HELP TYPE DECIMAL_ARY;
*** Help information returned. One row.
*** Total elapsed time was 1 second.
Name DECIMAL_ARY
Internal Type A1
External Type CV
Max Length
17
Decimal Total Digits
?
Decimal Fractional Digits
Contains Lob N
Ordering F
Ordering Category M
Ordering Routine LOCAL
Cast N
Transform Y
Method Y
Char Type 1
Array(Y/N) Y
Teradata FastLoad Reference
?
115
Chapter 3: Teradata FastLoad Commands
DEFINE
Dimensions
Element Type D
UDT Name ?
Array Scope [1:2]
1
HELP TYPE INTEGER_ARY;
*** Help information returned. One row.
*** Total elapsed time was 1 second.
Name INTEGER_ARY
Internal Type A1
External Type CV
Max Length
25
Decimal Total Digits
?
Decimal Fractional Digits
Contains Lob N
Ordering F
Ordering Category M
Ordering Routine LOCAL
Cast N
Transform Y
Method Y
Char Type 1
Array(Y/N) Y
Dimensions
1
Element Type I
UDT Name ?
Array Scope [1:2]
?
As indicated in the returned information from the HELP TYPE command, the maximum
length for the sample PHONENUMBERS_ARY ARRAY data type is 47 bytes. The
maximum length for the sample DECIMAL_ARY ARRAY data type is 17 bytes. The
maximum length for the sample INTEGER_ARY ARRAY data type is 25 bytes.
For more information about the external representations for the ARRAY data type, see
SQL Data Types and Literals (B035-1143).
•
Using Session Character Set KANJISJIS_0S
When the session character set used is KANJISJIS_0S, if the CHAR(n) or VARCHAR(n) of
the table to be loaded is defined as UNICODE character set, the corresponding field size in
the DEFINE command should be doubled, that is CHAR(n*2) or VARCHAR(n*2)
respectively.
If the CHAR(n) or VARCHAR(n) of the table to be loaded is defined as LATIN character
set, the corresponding field size in the DEFINE command remains the same, that is
CHAR(n) or VARCHAR(n) respectively.
116
Teradata FastLoad Reference
Chapter 3: Teradata FastLoad Commands
END LOADING
END LOADING
Purpose
The END LOADING command distributes all of the rows that were sent from the client to the
Teradata Database during the loading phase to their final destination on the AMPs.
Syntax
;
END LOADING
2411A019
Usage Notes
Table 31 describes the things to consider when using the END LOADING command.
Table 31: Usage Notes for END LOADING
Topic
Usage Notes
End Loading Phase
The END LOADING command begins the end loading phase of a Teradata
FastLoad job. During this phase, all rows are distributed on the AMPs and
stored in the final Teradata FastLoad table.
When the end loading phase completes, the Teradata Database removes the
access locks that were placed on the three tables specified in the BEGIN
LOADING command so users with the proper privileges can access them
using Teradata SQL statements.
Entering Teradata
SQL Statements
Many of the Teradata SQL statements from Teradata FastLoad cannot be
entered because the utility supports only a subset of the Teradata SQL
language. So, when END LOADING has completed and access to data stored
in the Teradata FastLoad table or the error tables is required, it cannot be
done from Teradata FastLoad. You must use BTEQ or a similar application
program must be used to query these tables.
Error Tables
Teradata FastLoad automatically drops error tables that contain no rows
when END LOADING finishes executing.
Internal
Checkpointing
The Teradata Database uses internal checkpointing while processing an END
LOADING command. Therefore, a job can be interrupted during the end
loading phase without disturbing processing status. When the job is restarted,
the Teradata Database resumes processing from where it left off.
Example
The following command example completes a Teradata FastLoad job:
END LOADING ;
Teradata FastLoad Reference
117
Chapter 3: Teradata FastLoad Commands
END LOADING
Completion Message
The Teradata FastLoad completion message for the END LOADING command depends on
whether the job includes a RECORD command.
Table 32 describes the possible RECORD command Completion messages.
Table 32: RECORD Completion Message Conditions
Job
118
Teradata FastLoad Response Layout
If the Job includes a
RECORD command
Total Records Read =
500
- skipped by RECORD command = 50
- sent to the RDBMS =
450
Total Error Table 1 =
25
Total Error Table 2 =
0
Total Inserts Applied =
425
Total Duplicate Rows =
0
If the Job does not include a
RECORD command
Total
Total
Total
Total
Total
Records Read =
Error Table 1 =
Error Table 2 =
Inserts Applied =
Duplicate Rows =
500
25
0
475
0
Teradata FastLoad Reference
Chapter 3: Teradata FastLoad Commands
ERRLIMIT
ERRLIMIT
Purpose
The ERRLIMIT command limits the number of records that can be rejected while inserting
data into the Teradata FastLoad table.
Syntax
;
ERRLIMIT n
2411A021
where
Syntax Element
Description
n
Maximum number of records that can be rejected before executing the END
LOADING command.
The default error limit value is 1000000.
Usage Notes
Table 33 describes the things to consider when using the ERRLIMIT command.
Table 33: Usage Notes for ERRLIMIT
Topic
Usage Notes
Limiting Insertion
Errors
Use the ERRLIMIT command to limit the number of insertion errors
captured in the first error table (errortname1) during the loading phase of a
job. Processing terminates when the number of errors encountered reaches
the error limit.
If, for example, errors are not expected in the input data, set the error limit
value to one. In this case, the job terminates when any record causes an
error.
Note, however, that when the specified error limit is reached, Teradata
FastLoad continues processing until each session completes its current data
block. This continued processing can cause the total number of error rows
captured in the first error table to exceed the ERRLIMIT specification.
Restarting a Job
Teradata FastLoad Reference
A job can be restarted from the last checkpoint if it terminates because the
error limit is reached. If checkpoints were not taken, restart the job from
the beginning.
119
Chapter 3: Teradata FastLoad Commands
ERRLIMIT
Example
The following command example terminates the job after 20 errors:
ERRLIMIT 20 ;
Completion Message
The Teradata FastLoad completion message is:
Error limit set to :20
120
Teradata FastLoad Reference
Chapter 3: Teradata FastLoad Commands
HELP
HELP
Purpose
The HELP command returns the syntax of all Teradata FastLoad commands and lists the
Teradata SQL statements supported by Teradata FastLoad.
Syntax
;
HELP
2411A020
Usage Notes
Table 34 describes the things to consider when using the HELP command.
Table 34: Usage Notes for HELP
Topic
Usage Notes
Using the HELP
Command
The HELP command is intended for online use.
Return Message Symbols
The HELP command return messages use these symbols:
• [ ] (brackets) indicate an optional entry.
• { } (curly braces) indicate a choice of entries, one of which must be
selected.
Example
The following command example returns a list of Teradata FastLoad commands:
HELP ;
Completion Message
The Teradata FastLoad completion message is:
Listed below is the syntax of each Teradata FastLoad command.
Single-line commands may be preceded by a [.] or terminated by a [;].
Multi-line commands must NOT be preceded by a [.] but must be terminated by a [;].
SQL statements must NOT be preceded by a [.] and MUST be terminated by a [;].
AXSMOD name [ "<init-string>" ] ;
BEGIN LOADING [dbname.]tname1
ERRORFILES [dbname.]errortname1,
[dbname.]errortname2
[ CHECKPOINT integer ]
[ INDICATORS
] ;
CLEAR ;
{ INTEGERDATE }
DATEFORM { ----------- } ;
Teradata FastLoad Reference
121
Chapter 3: Teradata FastLoad Commands
HELP
{ ANSIDATE
DEF[INE]
[ fieldname (data
[,fieldname (data
[ { FILE=filename
[ {
[ { INMOD=name
END LOADING ;
ERRLIMIT n ;
}
type [,NULLIF [=] value ]) ...
type [,NULLIF [=] value ])] ]
} ]
} ] ;
} ]
HELP ;
HELP TABLE tname ;
The INSERT statement has two formats:
1. INS[ERT] [INTO] tname.* ;
2. INS[ERT] [INTO] tname (cname [... ,cname])
VALUES (:fieldname [... ,fieldname]) ;
LOGOFF ;
LOG[ON] [tdpid/] username,password [ , 'acctid' ] ;
{ OFF
}
} [ EXIT [name] [TEXT "string"] ]
{ --NOTIFY { LOW
} [ MSG
[text]
] ;
{ MEDIUM } [ QUEUE [options]
]
{ HIGH
}
OS oscommand ;
QUIT ;
RECORD [startrecordnumber] [THRU endrecordnumber] ;
SESSIONS n|* [ m|* ] ;
{ FORMATTED
}
SET RECORD { --------} ;
{ UNFORMATTED
}
{ VARTEXT [ c ] [DISPLAY_ERRORS] [NOSTOP] }
{ 0 - 255
}
{ ASCII
}
} ;
SET SESSION CHARSET { ----{ KanjiEUC_0U }
{ KanjiSJIS_0S }
SHOW ;
SHOW VERSION[S] ;
SLEEP n ;
TENACITY n ;
The following DBS/SQL statements are supported by the
FastLoad utility:
CREATE TABLE
DATABASE dbname ;
DEL[ETE] FROM tname [ ALL ] ;
DROP TABLE tname ;
Note: Replace “FILE=” with “DDNAME=” for z/OS.
122
Teradata FastLoad Reference
Chapter 3: Teradata FastLoad Commands
HELP TABLE
HELP TABLE
Purpose
The HELP TABLE command creates a list of field names by querying the Teradata Database
and deriving the DEFINE list from the table definition.
Syntax
tname
HELP TABLE
;
dbname.
2411A023
where
Syntax Element
Description
tname
Table to be queried.
dbname
Database in which the table resides.
Usage Notes
Table 35 describes the things to consider when using the HELP TABLE command.
Table 35: Usage Notes for HELP TABLE
Topic
Usage Notes
Using DEFINE
Commands
If the HELP TABLE command is used to define field names, a DEFINE
command must still be used to specify the input data source name or INMOD
routine.
UDT column
If the table contains a UDT column, an external representation of the UDT is
returned.
For example, if the user defines a USDollar data type as Decimal(13,2) and
defines a column as USDollar type in the table, Decimal(13,2) is returned as
the data type of this column.
Teradata FastLoad Reference
123
Chapter 3: Teradata FastLoad Commands
HELP TABLE
Table 35: Usage Notes for HELP TABLE (continued)
Topic
Usage Notes
Using a CLEAR
Command
When using two HELP TABLE commands in the same Teradata FastLoad job,
using a CLEAR command before the second one cancels the first. The
following command example produces a list of only the Department table:
HELP TABLE Employee ;
CLEAR ;
HELP TABLE Department ;
Entering the two HELP TABLE commands without a CLEAR command, as in
the following example, produces a list of both the Employee and Department
tables:
HELP TABLE Employee ;
HELP TABLE Department ;
Unicode Session
Character Set
Limitation
Teradata FastLoad uses the number of bytes of storage returned from
Teradata Database to construct the USING clause of a load operation.
Therefore, when the session character set is UTF-8 or UTF-16, the MAX
LENGTH returned from the database is not the actual byte count for the
Unicode column, meaning that the internally generated USING clause does
not properly reflect the structure of the input data stream.
Instead of using HELP TABLE to describe the structure of input data, use the
DEFINE command when the session character set is UTF-8 or UTF-16.
Example
The following command example builds a list of field names from the table definition for a
table named Employee:
HELP TABLE Employee ;
The SHOW command can be used to verify the field names defined in the HELP TABLE
command:
SHOW ;
124
Teradata FastLoad Reference
Chapter 3: Teradata FastLoad Commands
INSERT
INSERT
Purpose
INSERT is a Teradata SQL statement that inserts data records into the rows of the Teradata
FastLoad table.
Note: FastLoad also supports temporal syntaxes like CURRENT VALIDTIME, SEQUENCED
VALIDTIME, VALIDTIME, NONSEQUENCED VALIDTIME and NONTEMPORAL clauses
prefixed in INSERT/INS statement.
Syntax
;
tname
INSERT
.
INTO
INS
*
,
values
( cname )
values
VALUES
,
( :fieldname )
2411A024
where
Syntax Element
Description
tname
Name of the table into which rows are inserted.
cname
Name of column to receive a new row value during the insert operation.
For each cname defined, a corresponding fieldname must be specified.
A list of column names can be defined in any order. The column names do
not have to be defined in the same order as they appear in the CREATE
TABLE statement.
fieldname
Field name that was defined in a previous DEFINE command.
During the insert operation, Teradata FastLoad inserts the field in the input
data record that was assigned to the fieldname into the corresponding
column (cname) of the Teradata FastLoad table.
.*
Wildcard specification that all columns in tname that are used to construct
the list of field names be used in the insert operation.
When the wildcard specification is used, Teradata FastLoad queries the
Teradata Database for all of the column names and uses them to construct a
valid INSERT statement.
Usage Notes
The following table describes the things to consider when using the INSERT statement.
Teradata FastLoad Reference
125
Chapter 3: Teradata FastLoad Commands
INSERT
Table 36 describes the things to consider when using the INSERT command.
Table 36: Usage Notes for INSERT
Topic
Usage Notes
Required Privileges
To use the INSERT statement, the user ID associated with the Teradata
FastLoad job must have INSERT privilege on the specified table.
Inserting Field
Values
During the insert operation, field values are inserted in the table in the order
in which the columns are listed in the CREATE TABLE statement. If field
values in the input data are stored in the same order as columns are defined in
the CREATE TABLE statement for the Teradata FastLoad table, a list of
column names does not need to be specified in the INSERT statement (for
instance, INSERT INTO table1 VALUES (:f1, :f2).
When the second format of the INSERT statement is used, a list of field names
is constructed from the definition of the table. During the insert operation,
field names and their data types are taken from the CREATE TABLE
statement and used to define the table.
The field name definitions are established in the order in which columns are
defined in the CREATE TABLE statement. So, the fields in each data record
must be in the same order as the columns in the definition of the table.
Using DEFINE
Commands
When using the second form of the INSERT statement, use the DEFINE
command to specify the name of the input data source or INMOD routine
used in the Teradata FastLoad job.
If a DEFINE command that defines one or more fields before the INSERT
statement is entered, Teradata FastLoad appends the field definitions to the
definitions constructed from the INSERT statement.
Note: The colon character preceding the input field name descriptions
(:fieldname) indicates that a corresponding DEFINE field must exist. If the
INSERT statement does not include: fieldname expressions, then Teradata
FastLoad transmits the command to the Teradata Database intact, without
linking it with a previous DEFINE command.
126
Using SHOW
TABLE Statements
If a Teradata SQL SHOW TABLE statement is used to display the exact
definition of a table, you must do so from BTEQ or another application.
Teradata FastLoad does not support this statement.
ANSI/SQL
DateTime
Specifications
The ANSI/SQL DATE, TIME, TIMESTAMP, and INTERVAL DateTime data
types in Teradata SQL CREATE TABLE statements can be used. They can be
specified as column/field modifiers in INSERT statements. They must be
converted to fixed-length CHAR data types when specifying the column/field
names in the Teradata FastLoad DEFINE command.
Teradata FastLoad Reference
Chapter 3: Teradata FastLoad Commands
INSERT
Table 36: Usage Notes for INSERT (continued)
Topic
Usage Notes
Using Unicode
Data
Caution:
Do not use the tname.* version of an INSERT statement when
using Unicode data from any of the following:
•
A KATAKANAEBCDIC session
•
A session with a character set name ending with _0I
•
Any session with a character set that does not support
multibyte characters (for example, ASCII or EBCDIC)
In addition to the field names from the referenced tables, these functions
return byte/character counts that Teradata FastLoad uses internally to
construct the USING clause for the subsequent load operation. Because of the
byte and character count conversions that take place when importing and
exporting CHAR and VARCHAR data between a client system and the
Teradata Database, the internally generated USING clause does not properly
reflect the structure of the input data stream.
Unicode Session
Character Set
Limitation
For information, see Table 35 on page 123.
Example 1
The following command example defines the EmpRecs input data source and the fields in
each record (Emp_Number and Emp_Name):
DEFINE Emp_Number (INTEGER), Emp_Name (VARCHAR(30)),
FILE=EmpRecs ;
INSERT INTO Employee (EmpNo, Name) VALUES
(:Emp_Number, :Emp_Name) ;
The INSERT statement defines the table and columns to receive new data values.
For each data record, the value in the first field (Emp_Number) is inserted in the EmpNum
column and the value in the second field (Emp_Name) is inserted in the Name column.
Example 2
The following command example establishes a list of field names from the definition of the
Teradata FastLoad table:
DEFINE FILE=InFile;
INSERT OldTable.* ;
The DEFINE command specifies the input data source (InFile) and defines each field to be
inserted in the Teradata FastLoad table (OldTable).
Example 3
Sometimes the records in an input data source contain data that does not belong in the
Teradata FastLoad table. If, for example, each record contains 100 bytes of extra data, a
dummy field can be defined in the DEFINE command that is not referenced in the INSERT
statement.
Teradata FastLoad Reference
127
Chapter 3: Teradata FastLoad Commands
INSERT
The following command example constructs a list of field names that match the current
definition of NewTable appended to the definition of the extra data item:
DEFINE ExtraData (CHAR (100)) FILE = InFile;
INSERT NewTable.*;
When extra data is used in the input data source with the INSERT TABLE .* feature, the extra
data must be located at the beginning of each record.
This feature cannot be used if the extra data occurs in the middle or at the end of the records.
In this case, explicitly define each data item in the data source and each item in the values
clause of the INSERT statement.
128
Teradata FastLoad Reference
Chapter 3: Teradata FastLoad Commands
LOGDATA
LOGDATA
Purpose
Supplies parameters to the LOGMECH command beyond those needed by the logon
mechanism, such as user ID and password, to successfully authenticate the user. The
LOGDATA command is optional. Whether or not parameters are supplied and the values and
types of parameters depend on the selected logon method.
LOGDATA is only available on network-based platforms.
Syntax
.LOGDATA
logdata_string
;
2411A036
where
Syntax Element
Description
logdata_string
Parameters for the logon mechanism specified using “LOGMECH”
on page 130
For information about the logon parameters for supported
mechanisms, see Security Administration (B035-1100).
The string is limited to 64 KB and must be in the session character set.
Note: Make sure that the string ends with a semicolon.
Usage Notes
For more information about logon security, see Security Administration (B035-1100).
Example
If used, the LOGDATA and LOGMECH commands must precede the LOGON command. The
commands themselves may occur in any order.
The following example demonstrates using the LOGDATA, LOGMECH, and LOGON
commands in combination to specify the Kerberos logon authentication method and
associated parameters:
.logmech KRB5;
.logdata joe@domain1@@mypassword;
.logon cs4400s3;
Teradata FastLoad Reference
129
Chapter 3: Teradata FastLoad Commands
LOGMECH
LOGMECH
Purpose
Identifies the appropriate logon mechanism by name. If the mechanism specified requires
parameters other than user ID and password for authentication, the LOGDATA command
provides these parameters. The LOGMECH command is optional and available only on
network-attached systems.
Syntax
.LOGMECH
logmech_name
;
2409A053
where
Syntax Element
Description
logmech_name
Defines the logon mechanism
For a discussion of supported logon mechanisms, see Security
Administration (B035-1100).
The name is limited to 8 bytes; it is not case- sensitive.
Usage Notes
Every session to be connected requires a mechanism name. If none is supplied, a default
mechanism can be used instead, as defined on either the server or client system in an
XML-based configuration file.
For more information about logon security, see Security Administration (B035-1100).
Example
If used, the LOGDATA and LOGMECH commands must precede the LOGON command. The
commands themselves may occur in any order.
The following example demonstrates using the LOGDATA, LOGMECH, and LOGON
commands in combination to specify the Windows logon authentication method and
associated parameters:
.logmech NTLM;
.logdata joe@domain1@@mypassword;
.logon cs4400s3;
130
Teradata FastLoad Reference
Chapter 3: Teradata FastLoad Commands
LOGOFF
LOGOFF
Purpose
The LOGOFF command ends Teradata FastLoad sessions and exits from the Teradata
Database.
The LOGOFF and QUIT commands may be used interchangeably.
Syntax
;
LOGOFF
QUIT
2411A013
Usage Notes
Table 37 describes the things to consider when using the LOGOFF command.
Table 37: LOGOFF Command Usage Notes
Topic
Usage Notes
Pausing Teradata FastLoad
If the LOGOFF command is entered after a BEGIN LOADING
command, but before the END LOADING command, the Teradata
FastLoad job pauses and can be restarted later.
Locked Tables
When a Teradata FastLoad job pauses during the loading phase, the
Teradata Database locks the tables named in the BEGIN LOADING
command. The tables remain locked until an END LOADING
command is entered.
Termination Return Codes
When a Teradata FastLoad job terminates, the utility returns a code
indicating the way the job completed:
• Code 0—Normal completion. The job completed successfully
and according to the specified plan.
• Code 4—Warning. A warning condition occurred; for example, a
job deviated from normal or from the specified plan, but still
completed successfully. A warning may indicate deviation from
the plan; for example, the number of sessions specified were not
actually used, or a part of the job did not run. Warning conditions
do not terminate the job.
• Code 8—User error. A user error, such as a syntax error in the job
script, terminated the job.
• Code 12—Severe error. A fatal error terminated the job. A fatal
error is any error other than a user error.
Teradata FastLoad Reference
131
Chapter 3: Teradata FastLoad Commands
LOGOFF
Example
The following command example ends Teradata FastLoad and exits the Teradata Database:
LOGOFF ;
Completion Message
The completion message indicates that the Teradata FastLoad job was either paused or
terminated, depending on whether the job was in the loading phase or not:
Table 38 describes the possible LOGOFF command Completion messages.
Table 38: LOGOFF Command Completion Messages
132
Job
Teradata FastLoad Response Layout
If the Job is in the
loading phase
**** 20:36:06 Logging off all sessions
**** 20:36:11 Total processor time used = '0.499203
Seconds'
.
Start : Thu Sep 20 20:35:22 2012
.
End
: Thu Sep 20 20:36:11 2012
. Highest return code encountered = '4'.
**** 14:19:36 FDL4818 FastLoad Paused
If the Job is not in
the loading phase
**** 20:36:06
**** 20:36:11
Seconds'
.
.
.
**** 20:36:11
Logging off all sessions
Total processor time used = '0.499203
Start :
End
:
Highest
FDL4818
Thu Sep 20 20:35:22 2012
Thu Sep 20 20:36:11 2012
return code encountered = '0'.
FastLoad Terminated
Teradata FastLoad Reference
Chapter 3: Teradata FastLoad Commands
LOGON
LOGON
Purpose
The LOGON command establishes one or more Teradata FastLoad sessions with the Teradata
Database.
Syntax
Standard LOGON Syntax
;
username, pasword
LOGON
tdpid/
,'acctid'
2411A022
Single Sign-on LOGON Syntax
;
LOGON
tdpid/
username , password
,'acctid'
2411A006
where
Syntax Element
Description
username
If the database does not support EON feature, a user identifier can have up to
30 bytes.
If the database supports EON feature, a user identifier can have up to 128
characters.
password
Password associated with the username.
If the database does not support EON feature, a password can have up to 30
bytes.
If the database supports EON feature, a password can have up to 128
characters.
Passwords that contain special characters must be enclosed in double quotes.
Teradata FastLoad Reference
133
Chapter 3: Teradata FastLoad Commands
LOGON
Syntax Element
Description
tdpid
Optional character string that identifies the name of a TDP.
The tdpid string can have from 1 to 8 characters.
Network-attached systems: The tdpid string can have up to 256 characters
and can be a domain name system (DNS) name.
The tdpid is the name of the host entered in the network hosts file. If this field
is not supplied, tdpid defaults to the TDP established for the user by the
system administrator.
Mainframe-attached systems: The tdpid string must be in the form:
TDPn
where n is the TDP identifier.
acctid
Account associated with the username
If the database does not support EON feature, a account identifier can have
up to 30 bytes.
If the database supports EON feature, a account identifier can have up to 128
characters.
If omitted, Teradata FastLoad uses the default account identifier defined
when the user was created.
Usage Notes
Table 39 describes the things to consider when using the LOGON command.
134
Teradata FastLoad Reference
Chapter 3: Teradata FastLoad Commands
LOGON
Table 39: Usage Notes for LOGON
Topic
Usage Notes
Logon Parameters
For standard logon, the parameters (tdpid, username, password, and acctid)
are used in all sessions established with the Teradata Database. The LOGON
command may occur only once.
For single sign-on logon, if the Gateway to Teradata Database is configured to
use single sign-on (SSO), and the user is already logged on to the Teradata
client machine, the machine name, user name, and password are not required
in the LOGON command. The user name and password combination
specified when the user logged on to the Teradata client machine are
authenticated via network security for a single sign-on such that valid
Teradata users will be permitted to log on to the Teradata Database. The use of
SSO is strictly optional, unless the Gateway has been configured to accept only
SSO-style logons.
To connect to a Teradata Database other than the one currently logged on, the
TDPid must be included in the LOGON command. If the TDPid is not
specified, the default contained in clispb.dat will be used. Refer to the Teradata
Call-Level Interface Version 2 Reference for Network-Attached
Systems (B035-2418) for information about setting defaults.
To be interpreted correctly, the TDPid must be followed by the slash separator
(‘/’) to distinguish the TDPid from a Teradata Database username. For
example, to connect to slugger, enter one of the following:
.LOGON slugger/;
.LOGON slugger/,,'acctinfo';
If an account ID is to be used, the optional account ID must be specified in
the LOGON command.
Note: To prevent the password from appearing in the script, use Teradata
Wallet. Refer to Security Administration (B035-1100) and the appropriate
installation guide for more information.
Starting Teradata
FastLoad
The LOGON command starts a Teradata FastLoad job and automatically
establishes:
• Two Teradata SQL sessions
• A number of Teradata FastLoad sessions
Note: When Teradata FastLoad attempts to connect the Main SQL session the
first time and the Teradata Database is down, Teradata FastLoad displays an
error message and terminates.
Note: When Teradata FastLoad attempts to connect the Main SQL session but
not the first time, or the Auxiliary SQL session, or the data sessions and the
Teradata Database is down. Teradata FastLoad retries to connect 16 times; if
the Teradata Database is still down, Teradata FastLoad displays an error
message and terminates.
Number of
Sessions
Teradata FastLoad Reference
The number of Teradata FastLoad sessions depends on the system limitations
described in “Session Limits” on page 62.
135
Chapter 3: Teradata FastLoad Commands
LOGON
Table 39: Usage Notes for LOGON (continued)
Topic
Usage Notes
Number of
Sessions
(continued)
Teradata FastLoad attempts to connect sessions, in groups of 16, until either:
Reported Sessions
After a LOGON command is entered, Teradata FastLoad reports the number
of Teradata FastLoad sessions that are logged on. The Teradata SQL sessions
are not included in this report.
Character Support
Current multi-byte character support of an object name is limited to 30 bytes
for the database that does not support EON and limited to 128 characters for
the database that supports EON.
• The number of sessions specified with a SESSIONS command are
connected
• A Teradata Database Error 2632 is returned
• Some other session limit is reached
Note: If the number that was specified in a SESSIONS command exceeds the
number of available sessions, Teradata FastLoad logs only the number of
available sessions.
The limitation applies to username, passwd, and account in the logon string.
CLI treats logon strings of UTF-8 and other Teradata-supported multi-byte
character sets (Chinese, Japanese, Korean) as ASCII. CLI does not convert
before parsing, so some logon strings with multi-byte characters (or a
combination of multi-byte characters plus ASCII) could fail if the total size of
an object name is over 30 bytes for the database that does not support EON
and is over 128 characters for the database that supports EON.
The work around is to create object names that are less than 30 bytesfor the
database that does not support EON are less than 128 characters for the
database that supports EON.
Example
The following command example logs on user Peterson:
LOGON DBC/peterson,HTims ;
Completion Message
The Teradata FastLoad completion message is:
Number of FastLoad sessions connected = 8
FDL4808 LOGON successful
136
Teradata FastLoad Reference
Chapter 3: Teradata FastLoad Commands
NOTIFY
NOTIFY
Purpose
The NOTIFY command specifies a user exit or predefined action to be performed whenever
certain significant events occur during a Teradata FastLoad job. (For a listing of events that
cause notifications, see Table 40 on page 139.)
The notify function is especially useful in operator-free environments where job scheduling
relies heavily on automation to optimize system performance. For example, by writing an exit
in C (without using CLIv2) and using the NOTIFY… EXIT option, a routine to detect
whether a Teradata FastLoad job succeeds or fails, how many records were loaded, what the
return code was for a failed job, and so on can be provided.
Note: The Teradata FastLoad NOTIFY command applies only to the job that immediately
follows it.
Syntax
NOTIFY
;
OFF
LOW
EXIT
EXITEON
name
TEXT "string "
MSG
"string "
QUEUE
option
MEDIUM
HIGH
EXIT
EXIT64
EXITEON
MSG
name
TEXT "string "
"string "
2414A005
where
Syntax Element
Description
OFF
Default. No notification of events is to be provided.
LOW
Notification is to be provided for those events signified by “Yes” in the Low
Notification Level column of Table 40.
MEDIUM
Notification is to be provided for those events signified by “Yes” in the Medium
Notification Level column of Table 40.
HIGH
Notification is to be provided for those events signified by “Yes” in the High
Notification Level column of Table 40.
EXIT
A user-written exit is to be called at the appropriate time.
Teradata FastLoad Reference
137
Chapter 3: Teradata FastLoad Commands
NOTIFY
Syntax Element
Description
name
The name of a user-supplied library with an entry point named
_dynamn.
The default library names are:
• libnotfyext.dll for Windows
• libnotfyext.so for UNIX platforms
• NOTFYEXT for z/OS platforms.
TEXT "string"
A user-supplied string of up to 80 characters that Teradata FastLoad passes to the
named exit routine
The string specification must be enclosed in double-quote characters (").
MSG "string"
A user-supplied string of up to 16 characters that Teradata FastLoad logs on to:
• The operator console on mainframe-attached z/OS client systems
• The system log or EventLog service on network-attached UNIX or Windows
systems
The string specification must be enclosed in double quote characters. This
service is not available on Windows 98.
QUEUE
Specifies that a queue is to be manipulated via ENQ or DEQ
See Table 41 for more details.
This option is valid only for z/OS.
option
One of the following:
RNAME defines a quoted string of up to 255 characters. The default is
TRDUSER.
SCOPE defines one of the following:
• JOB specifies that the QUEUE is local to the job (including all of the job
steps). This is the default.
• SYSTEMS specifies that the QUEUE is global to all computers in the
complex.
• SYSTEM specifies that the QUEUE is global to the computer on which it is
running.
NOBLOCK specifies that if the ENQ blocks for any reason, it must return an
error instead. This is a fatal error for the job.
The default, an implied BLOCK (there is no BLOCK keyword), means that the
ENQ will wait for the QUEUE.
EXIT64
A user-written exit is to be called at the appropriate time.
EXITEON
A user-written exit is to be called at the appropriate time.
Table 40 lists events that create notification.
138
Teradata FastLoad Reference
Chapter 3: Teradata FastLoad Commands
NOTIFY
Table 40: Events that Create Notifications
Notification Level
Event
Low
Medium
High
Signifies
Initialize
Yes
Yes
Yes
Successful processing of the NOTIFY command
File or INMOD open
No
No
Yes
Successful processing of the DEFINE command
Phase 1 begin
No
Yes
Yes
Beginning of the insert phase, as specified by the INSERT
statement
Checkpoint
No
No
Yes
Checkpoint information has been written to the restart log table
Phase 1 end
No
Yes
Yes
Successful processing of the CHECKPOINT LOADING END
request after the end of the insert phase
Phase 2 begin
No
Yes
Yes
The END LOADING command is about to be sent to the
Teradata Database
Phase 2 end
No
Yes
Yes
Successful processing of the END LOADING command
Error table 1
No
No
Yes
Successful processing of the SEL COUNT(*) request for the first
error table
Error table 2
No
No
Yes
Successful processing of the SEL COUNT(*) request for the
second error table
Teradata Database
Restart
No
Yes
Yes
A crash error from the Teradata Database or the CLIv2
CLIv2 error
Yes
Yes
Yes
A CLIv2 error
Teradata Database error Yes
Yes
Yes
A Teradata Database error that will terminate Teradata FastLoad
Exit
Yes
Yes
Teradata FastLoad is terminating
Yes
Usage Notes
Table 41 describes the things to consider when using the NOTIFY command.
Table 41: Usage Notes for NOTIFY
Topic
Usage Notes
QUEUE Notes
When QUEUE with LOW option is specified, the following takes place:
1 When NOTIFY is processed, it performs an ENQ upon a QUEUE with
RNAME of ‘TRDUSER’ and a scope of ‘JOB’. This call blocks until it
acquires the QUEUE.
2 After the job gets the QUEUE, it continues until it reaches a specific point
(such as the request completes) when it releases the QUEUE by
performing a DEQ.
Teradata FastLoad Reference
139
Chapter 3: Teradata FastLoad Commands
NOTIFY
Table 41: Usage Notes for NOTIFY (continued)
Topic
Usage Notes
Error Handling
When an error occurs, NOTIFY behaves as follows:
• When NOTIFY is processed, the subsystems used by Teradata FastLoad are
initialized and, if necessary, any user exits are loaded and a call is made to
initialize the system log (or an ENQ is performed).
• If initialization fails, FastLoad displays an error message and terminates
execution with return code 12.
• If anything fails after initialization, the request fails. If a user exit returns
anything other than 0, a FastLoad displays an error message and
terminates execution with return code 12.
Restarts
The following points pertain to restarts related to NOTIFY:
• If a Teradata FastLoad job ends abnormally or unsuccessfully, it can be
restarted and some NOTIFY-related activities are re-executed. This is an
important issue with respect to writing user exits.
• If a Teradata FastLoad job ends abnormally or unsuccessfully while it is
holding a queue (using the QUEUE type parameter under z/OS), it
releases the queue before exiting the job. Therefore, when the job restarts,
ensure that it again acquires the queue before it continues processing.
Creating Exit
Routine
When creating an exit routine, the following general procedures are constant
across all operating systems:
• The exit must be named _dynamn.
• Success is indicated by the return of a 0 (long integer format).
• Failure is indicated by the return of a nonzero value (long integer format).
Different integers can be used to indicate different errors.
• The parameter to the procedure is a pointer to a variable record structure.
Note: For a definition of the variable record structure, see “Notify Exit
Routine Example” on page 208.
• A C prototype example for an exit procedure might be as follows (using a
Teradata FastLoad example):
long _dynamn(FLNotifyExitParm *P)
The procedures for creating and using an exit routine are the same as for
creating and using an INMOD routine, as described in “INMOD and Notify
Exit Routines” on page 64 and Appendix D: “Compile, Link, and Execute
INMOD and Notify Exit Routines.”
Message Examples
Table 42 lists example messages for Teradata FastLoad events. In each case, the message is
preceded by the text string specified with the MSG option of the NOTIFY command.
Table 42: NOTIFY Command Message Examples
140
Teradata FastLoad Event
Message
Notify processed
- FastLoad notify processed.
Teradata FastLoad Reference
Chapter 3: Teradata FastLoad Commands
NOTIFY
Table 42: NOTIFY Command Message Examples (continued)
Teradata FastLoad Event
Message
Phase 1 is about to begin
- FastLoad phase one starting for table [N]
XXXXXXX.XXXXXXX.
Each checkpoint
- FastLoad checkpoint complete: NNNNNNNNNN
records sent.
When a data file is about to be opened
- FastLoad opening file filename
Phase 1 completes successfully
- FastLoad phase one completes: NNNNNNNNN
records sent.
Phase 2 completes successfully
- FastLoad phase two completes: NNNNNNNNN
records sent.
Teradata FastLoad Reference
141
Chapter 3: Teradata FastLoad Commands
OS
OS
Purpose
The OS command submits an operating system command to the client environment during a
Teradata FastLoad session.
Syntax
;
OS command
2411A025
where
Syntax Element
Description
command
Any command that is valid for the client operating system
Usage Notes
The OS command must terminate with a semicolon.
UNIX Examples
Table 43 lists examples of OS command used on a UNIX client system.
Table 43: OS Command Examples on a UNIX Client System
Command
Example
ls
The following command example lists the files in a directory on the UNIX
operating system and then returns to Teradata FastLoad:
OS ls ;
exec sh
The following command example accesses the UNIX shell:
OS exec sh ;
Then, at the client system prompt, enter other UNIX commands, such as:
$ pg myfile.one
$ cp oldfile newfile
$ cd draft
Press CTRL + D to exit the UNIX environment and return to Teradata FastLoad.
Windows Examples
Table 44 shows an example procedure for the OS command used on a Windows client system.
142
Teradata FastLoad Reference
Chapter 3: Teradata FastLoad Commands
OS
Table 44: Example OS Command on Windows Client System
Command
Example
dir
The following command example lists the files in a directory on the Windows
operating system and then returns to Teradata FastLoad:
OS dir;
command
The following command example accesses the Windows operating system:
OS command;
At the client system prompt, other commands can be entered, such as:
c:\teradata\bin>type myfile.one
c:\teradata\bin>edit myfile.one
c:\teradata\bin>exit
Enter exitto exit the Windows environment and return to Teradata
FastLoad.
z/OS Example
Table 45 shows an example procedure for the OS command used on an z/OS client system.
Teradata FastLoad Reference
143
Chapter 3: Teradata FastLoad Commands
OS
Table 45: Example Procedure for OS Command on z/OS Client System
Command
Example
TSO Setup Procedure
Before using the OS command on z/OS, the time-sharing option (TSO) must
be set up to run Teradata FastLoad interactively, as in the following example:
/
***************************************************************/
/*
*/
/* THIS CLIST INVOKE IBM_C VERSION OF FASTLOAD.
*/
/*
*/
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
/*
*/
/*
PARAMETER
USE
*/
/*
=========
===
*/
/*
DBCPFX
= HIGH LEVEL QUALIFIER FOR "APPLOAD" LIBRARY.
*/
/*
DEFAULT IS "DBC".
*/
/*
*/
/
***************************************************************/
PROC 0 DBCPFX(<APPLOAD LIBRARY>)
CONTROL NOMSG PROMPT
WRITE 'FASTLOAD CLIST TTU14.10'
ALLOC FI(CTRANS) DA('IMB_C LinkLib') SHR
ALLOC FI(SYSIN) DA(*)
ALLOC FI(SYSPRINT) DA(*)
ALLOC FI(SYSOUT)
DA(*)
ALLOC FI(SYSTERM) DA(*)
CALL '&DBCPFX..APP.L(FASTLOAD)'
FREE FI(CTRANS,SYSIN,SYSPRINT,SYSOUT,SYSTERM)
EXIT
where
• <APPLOAD LIBRARY> is the fully qualified name of the load library
containing Teradata FastLoad and CLIV2 components.
Note: Unlike batch, TSO does not support concatenated load libraries.
• <IBM C Linklib>is the fully qualified name of the IBM C link library.
Note: Input data sets can be allocated and freed.
TSO Command
After setting up TSO to run Teradata FastLoad interactively, the Teradata
FastLoad OS command can be used to enter any valid TSO command:
OS <TSO command>;
144
Teradata FastLoad Reference
Chapter 3: Teradata FastLoad Commands
QUIT
QUIT
Purpose
The QUIT command ends Teradata FastLoad sessions and exits from the Teradata Database.
The LOGOFF and QUIT commands may be used interchangeably.
Syntax
;
QUIT
LOGOFF
2411A026
Usage Notes
Table 46 describes the things to consider when using the QUIT command. For more
information about restarting a paused job, see “Restart a Paused Teradata FastLoad Job” on
page 49.
Table 46: Usage Notes for QUIT
Topic
Usage Notes
Pausing Teradata FastLoad
If the QUIT command is entered after a BEGIN LOADING
command, but before the END LOADING command, the Teradata
FastLoad job pauses, and can be restarted later.
Locked Tables
When a Teradata FastLoad job pauses during the loading phase, the
Teradata Database locks the tables named in the BEGIN LOADING
command. The tables remain locked until an END LOADING
command is entered.
Terminating Return Codes
When a Teradata FastLoad job terminates, the utility returns a code
indicating the way the job completed:
• Code 0—Normal completion. The job completed successfully and
according to the specified plan.
• Code 4—Warning. A warning condition occurred. Warning
conditions do not terminate the job.
• Code 8—User error. A user error, such as a syntax error in the
Teradata FastLoad job script, terminated the job.
• Code 12—Fatal error. Job is terminated. A fatal error is any error
other than a user error.
Teradata FastLoad Reference
145
Chapter 3: Teradata FastLoad Commands
QUIT
Example
The following command example ends Teradata FastLoad and exits the Teradata Database:
QUIT ;
Completion Message
The completion message indicates that the Teradata FastLoad job was either paused or
terminated, depending on whether the job was in the loading phase or not:
•
If the job is in the loading phase, then Teradata FastLoad responds:
**** 20:36:06 Logging off all sessions
**** 20:36:11 Total processor time used = '0.499203 Seconds'
.
Start : Thu Sep 20 20:35:22 2012
.
End
: Thu Sep 20 20:36:11 2012
.
Highest return code encountered = '4'.
**** 20:36:11 FDL4818 FastLoad paused
•
If the job is not in the loading phase, then Teradata FastLoad responds:
**** 20:36:06 Logging off all sessions
**** 20:36:11 Total processor time used = '0.499203 Seconds'
.
Start : Thu Sep 20 20:35:22 2012
.
End
: Thu Sep 20 20:36:11 2012
.
Highest return code encountered = '0'.
**** 20:36:11 FDL4818 FastLoad Terminated
146
Teradata FastLoad Reference
Chapter 3: Teradata FastLoad Commands
RECORD
RECORD
Purpose
The RECORD command defines the records of the input data source at which Teradata
FastLoad processing starts and ends.
Syntax
;
RECORD
startrecordnumber
THRU endrecordnumber
2411A027
where
Syntax Element
Description
startrecordnumber
Record at which processing begins.
The default is record 1.
THRU
Keyword that introduces the optional endrecordnumber parameter.
endrecordnumber
Record after which processing ends.
The endrecordnumber number must be equal to or greater than
startrecordnumber.
Usage Notes
Table 47 describes the things to consider when using the RECORD command.
Table 47: Usage Notes for RECORD
Topic
Usage Notes
Entering the
RECORD
Command
Enter the RECORD command before the INSERT statement in the Teradata
FastLoad job.
Restarting Teradata
FastLoad Jobs
When a job restarts, if the CHECKPOINT option is enabled, the utility begins
reading at the next record immediately after the last checkpointed record.
Teradata FastLoad Reference
If a RECORD command is not used, Teradata FastLoad reads from the first
record in the data source to the last record, unless the job is restarted.
147
Chapter 3: Teradata FastLoad Commands
RECORD
Table 47: Usage Notes for RECORD (continued)
Topic
Usage Notes
Invalid Record
Numbers
The RECORD command cannot specify invalid record numbers, such as:
• An endrecordnumber less than a startrecordnumber
• A negative value
If an invalid record number is specified, Teradata FastLoad returns an error
message:
• If the error occurs before the BEGIN LOADING command, then all
Teradata FastLoad sessions are logged off and the utility is exited.
• If the error occurs after BEGIN LOADING, then the job pauses (all
Teradata FastLoad sessions are logged off and the tables named in BEGIN
LOADING remain locked until END LOADING is executed).
THRU
Specification
If the THRU endrecordnumber parameter is not specified, Teradata FastLoad
begins to read at startrecordnumber and continues until it finds the last record
in the data source.
Example
The following command example specifies the records in the input data source starting at
record 1,000 and stopping at record 20,000:
RECORD 1000 THRU 20000 ;
Completion Message
The Teradata FastLoad completion message is:
Starting record number set to :1000
Ending record number set to
:20000
Example
The following command example specifies the records in the input data source starting at
record number 1 and stopping at record number 50,000:
RECORD THRU 50000 ;
Completion Message
The Teradata FastLoad completion message is:
Starting record number set to :1
Ending record number set to
:50000
148
Teradata FastLoad Reference
Chapter 3: Teradata FastLoad Commands
RUN
RUN
Purpose
The RUN command invokes a specified external source as the current source of commands
and statements.
Syntax
.RUN [FILE] fileid
;
2411B035
where
Syntax Element
Description
fileid
Data source of the external system.
The external system DD (or similar) statement specifies a file.
• In z/OS, the fileid is a DDNAME.
• In UNIX and Windows systems, the fileid is the path name for a file and
supports size of up to 1024.
FILE
The keyword FILE is optional.
Usage Notes
Table 48 describes the things to consider when using the RUN command.
Table 48: Usage Notes for Run
Topic
Usage Notes
z/OS fileid Usage
Rules
If a DDNAME is specified, Teradata FastLoad reads data records from the
specified source.
A DDNAME must obey the same construction rules as Teradata SQL column
names except that:
• The “at” character (@) is allowed as an alphabetic character.
• The underscore character (_) is not allowed.
The DDNAME must obey the applicable rules of the external system and may
reference a sequential or VSAM data set.
If the DDNAME represents a data source on magnetic tape, the tape may be
either labeled or nonlabeled, as supported by the operating system.
Teradata FastLoad Reference
149
Chapter 3: Teradata FastLoad Commands
RUN
Table 48: Usage Notes for Run (continued)
Topic
Usage Notes
Executing the
RUN Command
After Teradata FastLoad executes the RUN command, it reads additional
commands from the specified source until a LOGOFF command or end-of-file
condition is encountered, whichever occurs first.
An end-of-file condition automatically causes Teradata FastLoad to resume
reading its commands and DML statements from the previously active source:
• SYSIN for z/OS
• stdin (normal or redirected) for UNIX and Windows systems
Note: SYSIN/stdin remains the active input source after Teradata FastLoad
processes any user-provided invocation parameters.
Nested RUN
Commands
150
The source specified by a RUN command can have up to five levels of nested
RUN commands.
Teradata FastLoad Reference
Chapter 3: Teradata FastLoad Commands
SESSIONS
SESSIONS
Purpose
The SESSIONS command specifies how many Teradata FastLoad sessions will be logged on
when a LOGON command is entered and, optionally, the minimum number of sessions
required to run the job.
Syntax
SESSIONS
;
max
*
min
*
2411A028
where
Syntax Element
Description
max
Maximum number of sessions to log on.
The max specification must be greater than zero.
The default, if the SESSIONS command is not used, is one session for each
AMP.
min
Minimum number of sessions required for the job to continue.
The min specification must be greater than zero.
The default, if the SESSIONS command is not used, is 1.
*
Minimum and maximum number of sessions.
Using the asterisk character as the max specification logs on for the maximum
number of sessions—one for each AMP.
Using the asterisk character as the min specification logs on for at least one
session, but less than or equal to the max specification.
Note:
1) Specifying SESSIONS * * has the same effect as not using the
SESSIONS command at all.
2) On large to very large Teradata Database configurations, the
default of one session per AMP may be inappropriate.
Teradata FastLoad Reference
151
Chapter 3: Teradata FastLoad Commands
SESSIONS
Syntax Element
Description
* (continued)
There is no general method to determine the optimal number of sessions,
because it is dependent on several factors, including, but not limited to:
• Teradata Database performance and workload
• Client platform type, performance, and workload
• Channel performance, for mainframe-attached systems
• Network topology and performance, for network-attached systems
• Volume of data to be processed by the application
Using too few sessions is likely to unnecessarily limit throughput. On the
other hand, using too many sessions can increase session management
overhead (and also reduce the number of sessions available to any other
applications) and may, in some circumstances, degrade throughput.
Regardless of the size of the Teradata Database configuration, for large
repetitive production applications, it will usually be appropriate to
experiment with several different session configurations to determine the best
trade-off between resource utilization and throughput performance.
For larger Teradata Database configurations, it is appropriate to establish an
installation default for the maximum number of sessions that is less than one
session per AMP. This can be done either via the installation configuration
file (see “Teradata FastLoad Configuration File” on page 52) or via a standard
runtime parameter (see “Mainframe-Attached Runtime Parameters” on
page 35). An installation default for number of sessions, if specified in the
configuration file, can be overridden in individual Teradata FastLoad job
scripts, when necessary.
Usage Notes
Table 49 describes the things to consider when using the SESSIONS command.
Table 49: Usage Notes for SESSIONS
Topic
Usage Notes
DBS Support
TASM
If the DBS supports TASM, the SESSIONS command has no effect since the
number of sessions is determined by the DBS setup rules, Please refer to TRP
541-0007249 for DBS support TASM document. If FastLoad must connect to
the exact number of sessions required by the DBS, otherwise FastLoad will
displays the following message and terminates the job:
The number of FastLoad connections (n1) is not the same as the number of
connections returned by CHECK WORKLOAD END (n2) where n1 is the
number of sessions that FastLoad can connect and n2 is the number of
sessions that FastLoad must connect to required by the DBS.
Entering the
SESSIONS
Command
152
The SESSIONS command must be entered before the LOGON command in
the Teradata FastLoad job.
Teradata FastLoad Reference
Chapter 3: Teradata FastLoad Commands
SESSIONS
Table 49: Usage Notes for SESSIONS (continued)
Topic
Usage Notes
Session Number
Limits
Regardless of the number of sessions specified, the actual number of sessions
Teradata FastLoad uses is limited to the number of AMPs available on the
Teradata Database. Thus, there is no guarantee that the number of sessions
specified in the command will actually be logged on.
Reported Number
of Sessions
Teradata FastLoad reports the number of sessions logged on when a LOGON
command is executed.
Invalid Number of
Sessions
The maximum relevant number of sessions which can be specified is 32767.
Teradata FastLoad disregards any larger number and logs on for as many
sessions as it can, one session per available AMP as indicated in the Teradata
FastLoad error message:
FDL4867 Invalid number of sessions requested
FastLoad will log on as many sessions as possible
Example 1
The following example specifies five Teradata FastLoad sessions:
SESSIONS 5 ;
Example 2
The following example specifies ten Teradata FastLoad sessions, with a minimum of five:
SESSIONS 10 5 ;
Completion Message
The Teradata FastLoad completion message is:
FDL4866 SESSIONS command accepted
Error Message
If an invalid value is specified, Teradata FastLoad responds with the following error message:
FDL4867 Invalid number of sessions requested
FastLoad will log on as many sessions as possible.
Teradata FastLoad Reference
153
Chapter 3: Teradata FastLoad Commands
SET RECORD
SET RECORD
Purpose
The SET RECORD command specifies the format of the input data for Network-Attached
platform as:
•
Formatted
•
Unformatted
•
Binary
•
Text
•
Variable-length text
The SET RECORD command specifies the format of the input data for Mainframe-Attached
platform as:
•
Variable-length text
The SET RECORD command:
•
Can be specified only one time per Teradata FastLoad job script
•
When specified, must be appear before the DEFINE command
Syntax
Figure 1: For Mainframe-Attached Client Systems
SET RECORD VARTEXT
‘|’
A
‘c’
DELIMITER
A
;
DISPLAY ERRORS
‘efilename’
NOSTOP
TRIM
NONE
LEADING
TRAILING
BOTH
QUOTE
NO
OPTIONAL
YES
154
‘p’
‘ ” ’
‘ q ’
‘ r ’
2411B001
Teradata FastLoad Reference
Chapter 3: Teradata FastLoad Commands
SET RECORD
Figure 2: For Network-Attached Client Systems
SET RECORD
FORMATTED
UNFORMATTED
BINARY
TEXT
VARTEXT
DELIMITER
;
A
'I'
'c '
;
A
DISPLAY_ERRORS
'efilename'
NOSTOP
TRIM
QUOTE
NONE
LEADING
TRAILING
BOTH
NO
OPTIONAL
YES
'p'
'"'
'q'
'r'
2411A012
where
Syntax Element
Description
FORMATTED
Keyword specification that the input data source is in Teradata Database
standard format.
This is the default specification, if the SET RECORD command is not used
in the Teradata FastLoad job script.
UNFORMATTED
Keyword specification that the input data source deviates from Teradata
Database standard format.
Unformatted records are any data file, such as a text file, that does not have
various properties such as a consistent structure with regard to record
length and order of data elements.
BINARY
Keyword specification that the input data source is in binary format.
The format must be a 2-byte integer, n, followed by n bytes of data.
TEXT
Keyword specification that the input data source is in text format.
The format must be an arbitrary number of bytes, followed by an
end-of-record marker, which is a:
• Line feed (x’0A) on UNIX platforms
• Carriage-return/line feed pair (X’0D0A’) on Windows platforms
VARTEXT
Teradata FastLoad Reference
Keyword specification that the input data source is in variable-length text
record format, with each field separated by a delimiter character.
155
Chapter 3: Teradata FastLoad Commands
SET RECORD
Syntax Element
Description
‘c’
Optional specification of the delimiter that separates fields in the
variable-length text records of the input data source
The delimiter can be a single or multi-character sequence (or string).
If the delimiter is not specified, the default is the character sequence
consists of a single pipe character (|).
If the script character set is different from the client session character set,
the delimiter is converted from the script character set to the client session
character set before it is passed to Data Connector.
Note: Any character sequence that appears in the data cannot be used as a
delimiter. No control character other than a tab character can be used in a
delimiter.
DISPLAY_ERRORS
Optional keyword specification that writes input data records that produce
errors to the standard error file.
'efilename'
Optional specification of a regular file name used to store erroneous
variable-length text records. If it's specified, it must be specified after the
DISPLAY_ERRORS keyword.
If not specified, erroneous variable-length text records will be displayed on
stderr.
156
NOSTOP
Optional keyword specification that inhibits the Teradata FastLoad
termination in response to an error condition associated with a
variable-length text record.
TRIM
Optional keyword. It is used to specify whether field values in
variable-length text record could be trimmed. It must be followed by one
of the following keywords: NONE, LEADING, TRAILING or BOTH.
NONE
Can follow the keyword TRIM. It is used to specify that field values are not
to be trimmed. TRIM NONE is the default behavior of the trim processing,
which is the same as not specifying the TRIM at all.
LEADING
Can follow the keyword TRIM. It is used to specify the leading characters of
field values must be trimmed. See 'p' below for trim character specification.
TRAILING
Can follow keyword TRIM. It is used to specify that the trailing characters
of field values must be trimmed. See 'p' below for trim character
specification.
BOTH
Can follow keyword TRIM. It is used to specify that the leading and trailing
characters of field values must be trimmed. See 'p' below for trim character
specification.
Teradata FastLoad Reference
Chapter 3: Teradata FastLoad Commands
SET RECORD
Syntax Element
Description
'p'
Optional specification of the trim character in field values of
variable-length text records of the input data source. It is specified after the
keyword LEADING, TRAILING or BOTH.
Rules for a trim character are:
• The trim character must be a single character, but may be either a
single-byte or multi-byte character. It is expressed in the client session
character set.
• By default, if 'p' is not specified, the trim character is the blank (space)
character.
• Trimming can be performed on either unquoted or quoted field values.
• If a field consists solely of one or more trim characters, it will be a
zero-length VARCHAR after trimming. It can be set to NULL using
NULLIF option on the DEFINE command.
QUOTE
Optional keyword. It is used to specify whether field values in
variable-length text record will never be quoted (if it is followed by
keyword NO), optionally be quoted (if it is followed by keyword
OPTIONAL) or always be quoted (if it is followed by keyword YES). It
must be followed by one of the following keywords: NO, OPTIONAL or
YES.
NO
Can follow keyword QUOTE. It is used to specify that field values will
never be quoted. It is the default behavior.
OPTIONAL
Can follow keyword QUOTE. It is used to specify that field values will
optionally be quoted.
YES
Can follow keyword QUOTE. It is used to specify that field values will
always be quoted.
'q'
Optional specification of the opening quoted character in field values of
variable-length text records of the input data source. See 'r' for more
information.
'r'
Optional specification of the closing quoted character in field values of
variable-length text records of the input data source.
Rules for opening and closing quoted characters are:
• The quote character, either opening or closing quote, must be a single
character, but may be either a single-byte or multi-byte character. It is
expressed in the client session character set.
• The opening and closing quote characters can be different.
• If only 'q' is specified, it's used for both opening and closing quotes.
• By default, if 'q' or 'r' are not specified, the opening quote or the closing
quote is the '"' character.
Usage Notes
The following are the things to consider when using the SET RECORD command.
•
Teradata FastLoad Reference
Data Formats
157
Chapter 3: Teradata FastLoad Commands
SET RECORD
The input source data can be either in text or binary format, where
•
•
Text format is a data source containing characters for display on an ASCII terminal.
•
Binary format is numbers in hexadecimal
Unformatted Records
When UNFORMATTED is specified, Teradata FastLoad assumes nothing concerning the
structure of the data, end-of-record delimiters, special characters and field length
indicators. The input data can be either text or binary:
•
Use both an INSERT statement and a DEFINE command to define the fields
•
For binary data, manually insert the indicator bytes preceding each record
Teradata FastLoad then uses the DEFINE clause as a guide to calculate the actual length of
each record.
Data that is extraneous and not intended for use can be defined as CHAR.
Note: For ASCII data, line ending characters can differ from platform to platform. For
example, some systems might only use a carriage return character, while others might use
both a carriage return and a line feed character to end a line. Always consider the
platform-dependent characteristics when reading ASCII data from a text file.
•
VARTEXT Records
When VARTEXT is specified, Teradata FastLoad assumes that the input data is
variable-length text fields separated by a field delimiter character. The utility parses each
input data record on a field-by-field basis, and creates a VARCHAR field for each input
text field.
•
Data Type Specifications
When using the VARTEXT specification, VARCHAR and VARBYTE are the only valid
data type specifications which can be used in the Teradata FastLoad DEFINE
command.
•
Null Fields
Two consecutive delimiter characters direct Teradata FastLoad to null the field
corresponding to the one right after the first delimiter character.
Also, if the last character in a record is a delimiter character, and yet there was at least
one more field to be processed, Teradata FastLoad nulls the field corresponding to the
next one to be processed, as defined in the DEFINE command.
•
Input Record Requirements
The total number of fields in each input record must be equal to or greater than the
number of fields described in the Teradata FastLoad DEFINE command. If the total
number is less, Teradata FastLoad generates an error message. If the total number is
more, the Teradata Database ignores the extra fields.
•
Error Record Handling
When Teradata FastLoad encounters an error condition in an input record, it normally
discards the record and terminates. When loading variable-length text records, either
or both of these functions can be inhibited by specifying the error-handling options:
•
158
DISPLAY_ERRORS
Teradata FastLoad Reference
Chapter 3: Teradata FastLoad Commands
SET RECORD
•
NOSTOP
By specifying both options and redirecting STDERR to a file location instead of the
terminal screen, the Teradata FastLoad job will run to completion and save all the error
records. They can then be manually modified using another utility such as BTEQ or
MultiLoad to load them into the table.
•
Variable-length Fields
When using variable-length fields in either formatted or unformatted records, either:
•
Include a two-byte binary integer indicator immediately preceding each
variable-length field. Teradata FastLoad uses this indicator to determine the exact
length of the field.
•
Pad each variable-length field with blanks to produce fixed-length fields
In either case, the maximum field length as shown in the table definition cannot be
exceeded.
•
DEFINE and INSERT Specifications
Use VARCHAR specifications in the DEFINE command and INSERT statements for
variable-length data:
User.Table
Name
Co1001
Co1002
Co1003
define
Definition
Type
Size
Integer
4 bytes
Varchar(8)
up to 8 bytes
Date
4 bytes
Co1001 (integer),
Co1002 (Varchar(8)),
Co1003 (date)
file = file_path ;
insert into User.Table
values ( :Co1001,
:Co1002,
:Co1003 ) ;
To pad a variable-length field to the maximum used in the table definition (in this case
eight bytes) define column 2 as Char(8) with the table definition remaining Varchar(8).
The following table (User.Table) contains three columns of fixed-length data types. Each
record has four bytes as an integer, followed by eight bytes of characters, and then four
bytes of a date in integer format:
User.Table Definition
Name
Type
Co1001
Integer
Co1002
Char(8)
Co1003
Date
Size
4 bytes
8 bytes
4 bytes
Assuming that the fields in the record correspond exactly to the table columns, the
DEFINE command and INSERT statement specifications would be:
define
Co1001 (integer),
Co1002 (char(8)),
Co1003 (date)
file = file_path ;
insert into User.Table
values ( :Co1001,
:Co1002,
Teradata FastLoad Reference
159
Chapter 3: Teradata FastLoad Commands
SET RECORD
:Co1003 ) ;
Co1001 Co1002 Co1003
|00030506|4549474854202020|000CFD1F
The DEFINE and INSERT specifications to define undesirable data (such as special control
characters or carriage returns using HEX 0A as end-of-record delimiters) would be:
defineDummy(char(8)),
Co1001
(integer),
Co1002
(char(8)),
Co1003
(date),
Newline(char(1))
file = file_path ;
insert into User.Table
values ( :Co1001,
:Co1002,
:Co1003 ) ;
Control Char Co1001 Co1002 Co1003
0FCA037CB86BFF8A|00030506|4549474854202020|000CFD1F|0A
New line
Note: Some systems might require a Newline(char(2)) specification instead of
Newline(char(1)).
Example
The following command example sets records to unformatted mode:
set record unformatted ;
Completion Message
The Teradata FastLoad completion message is:
Now set to read “UNFORMATTED” records.
160
Teradata FastLoad Reference
Chapter 3: Teradata FastLoad Commands
SET SESSION CHARSET
SET SESSION CHARSET
Purpose
The SET SESSION CHARSET command specifies which character set is in effect during a
specific Teradata FastLoad invocation.
Note: The SET SESSION CHARSET command applies only to network-attached systems. For
mainframe-attached systems, see “Invoking Teradata FastLoad” on page 33 for a description
of the CHARSET parameter.
Syntax
SET SESSION CHARSET
"
ASCII
"
;
KANJIEUC _ 0 U
KANJISJIS _ 0 S
2411B029
where
Syntax Element
Description
ASCII
ASCII character set.
KANJIEUC_0U
Kanji Extended UNIX Code character set.
KANJISJIS_0S
Combined JIS-x0208 and JIS-x0201 character set developed by
Microsoft.
Usage Notes
Table 50 describes the things to consider when using the SET SESSION CHARSET command.
Table 50: Usage Notes for SET SESSION CHARSET
Topic
Usage Notes
Command Placement
The SET SESSION CHARSET command must appear before the
LOGON command in the Teradata FastLoad job script.
Double Quote
Characters in Character
Set Name Specifications
The names of the character sets must be enclosed in double quote
characters.
Teradata FastLoad Reference
161
Chapter 3: Teradata FastLoad Commands
SET SESSION CHARSET
Table 50: Usage Notes for SET SESSION CHARSET (continued)
Topic
Usage Notes
Priority of Character
Set Specifications
The order in which the character set is determined for a Teradata
FastLoad job is:
1 User specified by a:
• Runtime parameter (This specification has the highest priority on
all supported platforms.)
• SET SESSION CHARSET command on network-attached
systems
• CHARSET parameter in the Teradata FastLoad configuration file
2 System Parameter Block (SPB) specified by the:
• HSHSPB on mainframe-attached systems
• clispb.dat file on network-attached systems.
3 Teradata Database default, determined by a query from Teradata
FastLoad.
162
Teradata FastLoad Reference
Chapter 3: Teradata FastLoad Commands
SHOW
SHOW
Purpose
The SHOW command displays active definitions for the input data source or INMOD routine
and the field names that were established by one or more DEFINE commands.
Syntax
SHOW
;
2411A030
Usage Notes
The SHOW command displays:
•
Field names
•
Data type (integer or character) of each field
•
Internal length of each field
•
Offset of each field within the input record
•
Input data source or INMOD routine names
If a DEFINE command has not been entered, the result is blank and Teradata FastLoad
responds with this message:
TOTAL RECORD LENGTH = 0
Note: The SHOW command is processed by Teradata FastLoad. It is not transmitted to the
Teradata Database.
Example
When the following DEFINE command is active:
DEFINE EmpNo (smallint),
Name (varchar(12)),
DeptNo (decimal (3,0)),
JobTitle (varchar(12)),
Salary (decimal(8,2)),
YrsExp (byteint),
DOB (date),
Sex (char(1)),
Race (char(1)),
MStat (char(1)),
EdLev (byteint),
HCap (byteint)
FILE=EmpData ;
The Teradata FastLoad response to the SHOW command is:
Teradata FastLoad Reference
163
Chapter 3: Teradata FastLoad Commands
SHOW
FILE = EmpData
EMPNO
OFFSET=
NAME
OFFSET =
DEPTNO
OFFSET=
JOBTITLE
OFFSET=
SALARY
OFFSET=
YRSEXP
OFFSET=
DOB
OFFSET=
SEX
OFFSET=
RACE
OFFSET=
MSTAT
OFFSET=
EDLEV
OFFSET=
HCAP
OFFSET=
TOTAL RECORD LENGTH=
164
0
2
16
18
32
36
37
41
42
43
44
45
46
LEN
LEN
LEN
LEN
LEN
LEN
LEN
LEN
LEN
LEN
LEN
LEN
=
=
=
=
=
=
=
=
=
=
=
=
2
12
2
12
4
1
4
1
1
1
1
1
SMALLINT
VARCHAR
DECIMAL
VARCHAR
DECIMAL
BYTEINT
DATE
CHAR
CHAR
CHAR
BYTEINT
BYTEINT
Teradata FastLoad Reference
Chapter 3: Teradata FastLoad Commands
SHOW VERSIONS
SHOW VERSIONS
Purpose
The SHOW VERSIONS command displays the current level of all Teradata FastLoad utility
software modules.
Syntax
SHOW
VERSIONS
;
VERSION
2411A031
Usage Notes
Use the SHOW VERSIONS command to retrieve the version information when reporting
software problems.
Example
The following command example displays the current versions of software modules in use:
.show version;
0001 .show version;
FastLoad Version 14.10.00.00 for Win 32 running Windows Sockets
FastLoad : 14.10.00.05
FastCmds : 14.10.00.08
FastIO
: 14.10.00.00
FastMBCS : 14.10.00.00
FastNtfy : 14.00.00.03
FastPars : 14.10.00.01
FastSQL
: 14.10.00.12
FastUtil : 14.10.00.01
Fdlosdep : 13.01.00.00
Teradata Data Connector : 14.10.00.00
PMPROCS
: 14.10.00.05
PMRWFMT
: 14.10.00.01
PMTRCE
: 13.10.00.02
PMMM
: 13.00.00.01
PMUDDI
: 14.10.00.03
DCUDDI
: 14.10.00.09
PMHEXDMP : 13.10.00.01
PMUNXDSK : 14.10.00.05
ICUVER
: TDICU, 14.10.00.00
CLIV2
: 14.10.00.15
MTDP
: 14.10.00.12
MOSIos
: 14.10.00.01
MOSIDEP
: 14.00.00.04
OSENCRYPT : N/A
OSERR
: 14.00.00.00
Teradata FastLoad Reference
165
Chapter 3: Teradata FastLoad Commands
SHOW VERSIONS
FastLoad linking date: Aug 16 2012
166
Teradata FastLoad Reference
Chapter 3: Teradata FastLoad Commands
SLEEP
SLEEP
Purpose
The SLEEP command specifies the number of minutes that Teradata FastLoad pauses before
retrying a logon operation when the maximum number of load operations is already running
on the Teradata Database.
Syntax
;
SLEEP minutes
2411A032
where
Syntax Element
Description
minutes
Number of minutes that Teradata FastLoad pauses before retrying the logon
operation.
The minutes specification must be greater than zero. If zero is entered,
Teradata FastLoad responds with an error message, and terminates.
The Teradata FastLoad default, if the SLEEP command is not used, the
number of minutes is 6.
Usage Notes
Table 51 describes the things to consider when using the SLEEP command.
Teradata FastLoad Reference
167
Chapter 3: Teradata FastLoad Commands
SLEEP
Table 51: Usage Notes for SLEEP
Topic
Usage Notes
Function
The SLEEP specification works with the TENACITY specification to control
Teradata FastLoad logon attempts.
When Teradata FastLoad tries to log on for a new session, and the Teradata
Database indicates that the maximum number of load sessions is already
running, the Teradata FastLoad utility:
1 Logs off any new sessions that were logged on
2 Waits for 6 minutes, by default, or for the amount of time specified by the
SLEEP command
However, if the amount of time specified by the SLEEP command exceeds
that of the TENACITY command, then the sleep interval is reset and
equated to the amount of time specified by the TENACITY command.
For example, if the time specified with the SLEEP command is 65 minutes
and the time specified with TENACITY command is 1 hour, then the
SLEEP time is reset to 60 minutes so that the SLEEP time does not exceed
the TENACITY time.
3 Tries again to log on to the Teradata Database
Teradata FastLoad repeats this process until it has either logged on for the
required number of sessions or equates the amount of time specified by the
TENACITY command.
Note: The sleep interval specified in the SLEEP command is dynamically
adjusted so that the total sleep times does not exceed the amount of time
specified by the TENACITY command.
For example, if the time specified with the SLEEP command is 35 minutes and
the time specified with the TENACTY command is 1 hour, then:
• FastLoad sleeps for 35 minutes and then attempts to log on to the Teradata
Database.
• If the first logon attempt fails, then the SLEEP time is adjusted to 25
minutes so that the total SLEEP time does not exceed the TENACITY time.
Command
Placement
168
Command placement affects the logon operation. State the SLEEP and
TENACITY commands before the LOGON command in the Teradata
FastLoad job script. Teradata FastLoad terminates with an error message if
these commands are stated after the LOGON command.
Teradata FastLoad Reference
Chapter 3: Teradata FastLoad Commands
SLEEP
Table 51: Usage Notes for SLEEP (continued)
Topic
Usage Notes
Command
Overrides
The SLEEP and TENACITY command specifications override the
corresponding SLEEP and TENACITY specifications that may be made in the
Teradata FastLoad configuration file.
Similarly, the SLEEP and TENACITY command specifications themselves are
overridden by the corresponding specifications made as runtime parameters
when invoking Teradata FastLoad.
The order of preferences for the SLEEP and TENACITY specifications, from
highest to lowest, is:
1 Runtime parameters
2 Teradata FastLoad script commands
3 Teradata FastLoad configuration file specifications
4 Teradata FastLoad default values
Teradata FastLoad Reference
169
Chapter 3: Teradata FastLoad Commands
TENACITY
TENACITY
Purpose
The TENACITY command specifies the number of hours that Teradata FastLoad continues
trying to log on when the maximum number of load operations is already running on the
Teradata Database.
Syntax
;
TENACITY hours
2411A033
where
Syntax Element
Description
hours
Number of hours that Teradata FastLoad continues trying to log on.
The hours specification must be greater than zero. If zero is entered, Teradata
FastLoad responds with an error message and terminates.
Usage Notes
Table 52 describes the things to consider when using the TENACITY command.
170
Teradata FastLoad Reference
Chapter 3: Teradata FastLoad Commands
TENACITY
Table 52: Usage Notes for TENACITY
Topic
Usage Notes
Function
The TENACITY specification works with the SLEEP specification to control
Teradata FastLoad logon attempts.
When Teradata FastLoad tries to log on for a new session, and the Teradata
Database indicates that the maximum number of load sessions is already
running, Teradata FastLoad:
1 Logs off any new sessions that were logged on
2 Waits for 6 minutes, by default, or for the amount of time specified by the
SLEEP command
3 Tries again to log on to the Teradata Database
Teradata FastLoad repeats this process until it has either logged on for the
required number of sessions or exceeded the amount of time specified by the
TENACITY command.
For more information on how the TENACITY command interacts with the
SLEEP command, please see Table 51 on page 168.
Note: The utility default for TENACITY is no tenacity. A Teradata FastLoad
configuration file entry, the runtime parameter, or a TENACITY command
must be used in the Teradata FastLoad job script to enable the tenacity feature
for the Teradata FastLoad logon operation.
Command
Placement
Command placement affects the logon operation. State the TENACITY and
SLEEP commands before the LOGON command in the Teradata FastLoad job
script. Teradata FastLoad terminates with an error message if the Teradata
FastLoad job script states the TENACITY or SLEEP command after the
LOGON command.
Command
Overrides
The TENACITY and SLEEP command specifications override the
corresponding TENACITY and SLEEP specifications that may be made in the
Teradata FastLoad configuration file.
Similarly, the TENACITY and SLEEP command specifications themselves are
overridden by the corresponding specifications made as runtime parameters
when invoking Teradata FastLoad.
The order of preferences for the TENACITY and SLEEP specifications, from
highest to lowest, is:
1 Runtime parameters
2 Teradata FastLoad script commands
3 Teradata FastLoad configuration file specifications
4 Teradata FastLoad default values
Teradata FastLoad Reference
171
Chapter 3: Teradata FastLoad Commands
TENACITY
172
Teradata FastLoad Reference
CHAPTER 4
Troubleshooting
This chapter provides a description of user aids for identifying and correcting errors that
might occur during a Teradata FastLoad task. Foremost among these tools are a large number
of error messages. For more information on error messages, see Messages (B035-1096).
Troubleshooting information in this chapter includes:
•
Compiler Versions
Compiler Versions
Table 53 lists compilers and the version used while building the utility. The C runtime libraries
that support these compiler versions must be installed on the client system.
Table 53: Compiler Versions
Platform
Compiler Version
AIX
IBM XL C/C++ for AIX, V12.1 (5765-J02, 5725-C72)
Version: 12.01.0000.0000
HPUX-IA64
HP C/aC++ B3910B A.06.20 [May 13 2008]
HPUX-PARISC
HP92453-01 B.11.11.16 HP C Compiler
SOLARIS SPARC
Sun C 5.8 2005/10/13
SOLARIS OPTERON
Sun C 5.8 Patch 121016-08 2009/04/20
LINUX
gcc version 4.3.4 [gcc-4_3-branch revision 152973] (SUSE
Linux)
z/Linux
gcc version 4.1.0 (SUSE Linux)
WINDOWS
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version
14.00.50727.762 for 80x86
Mainframe
z/OS V1.11 XL C/C++
Teradata FastLoad Reference
173
Chapter 4: Troubleshooting
Compiler Versions
174
Teradata FastLoad Reference
APPENDIX A
How to Read Syntax Diagrams
This appendix describes the conventions that apply to reading 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
Keywords and variables.
• 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
Linux 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 an excerpt from the diagram. The excerpt is
defined immediately following the diagram that contains it.
• 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 FastLoad Reference
175
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
176
FE0CA004
Teradata FastLoad Reference
Appendix A: How to Read Syntax Diagrams
Syntax Diagram Conventions
If you can optionally choose from more than one entry, all the choices appear below the main
path:
READ
SHARE
JC01A010
ACCESS
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
String literals appear in apostrophes:
'msgtext '
JC01A004
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:
,
,
(
cname
3
4
)
JC01B012
Teradata FastLoad Reference
177
Appendix A: How to Read Syntax Diagrams
Syntax Diagram Conventions
Read loops from right to left.
The following conventions apply to loops:
IF...
THEN...
there is a maximum number of
entries allowed
the number appears in a circle on the return path.
there is a minimum number of
entries 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 each side of the break. The
name for the excerpted piece appears between the terminators in boldface type.
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
178
Teradata FastLoad Reference
Appendix A: How to Read Syntax Diagrams
Syntax Diagram Conventions
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
Sample Syntax Diagram
,
CREATE VIEW
viewname
AS
A
LOCKING
cname
CV
LOCK
ACCESS
dbname
A
DATABASE
tname
FOR
SHARE
IN
READ
TABLE
WRITE
EXCLUSIVE
vname
VIEW
EXCL
,
B
SEL
B
MODE
expr
,
FROM
qual_cond
tname
C
.aname
C
HAVING cond
;
qual_cond
,
WHERE cond
GROUP BY
cname
,
col_pos
JC01A018
Teradata FastLoad Reference
179
Appendix A: How to Read Syntax Diagrams
Syntax Diagram Conventions
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.
180
Teradata FastLoad Reference
APPENDIX B
Multifile Teradata FastLoad Job Script
Examples
This appendix provides three example multifile Teradata FastLoad job scripts. The third script
includes the END LOADING command.
The following subsections show the output from the three Teradata FastLoad job scripts.
Note: The third output file contains the final statistics.
First Output File
===================================================================
=
=
=
FASTLOAD UTILITY
VERSION 14.10.00.00
=
=
PLATFORM WIN32
=
=
=
===================================================================
===================================================================
=
=
=
Copyright 1984-2012, Teradata Corporation.
=
=
ALL RIGHTS RESERVED.
=
=
=
===================================================================
**** 11:20:51 Processing starting at: Fri Sep 21 11:20:51 2012
0001 .SESSIONS 2;
**** 11:20:51 FDL4866 SESSIONS command accepted
===================================================================
=
=
=
Logon/Connection
=
=
=
===================================================================
0002 .logon 153.65.168.87/weekly,
****
****
****
****
****
11:20:51
11:20:51
11:20:51
11:20:51
11:20:51
Teradata Database Release: 14.10.00.99
Teradata Database Version: 14.10.00.99
Number of AMPs available: 4
Current CLI or RDBMS allows maximum row size: 64K
Character set for this job: ASCII
Teradata FastLoad Reference
181
Appendix B: Multifile Teradata FastLoad Job Script Examples
First Output File
0003 .SHOW VERSION;
FastLoad Version 14.10h.00.00 for Win 32 running Windows Sockets
FastLoad : 14.10.00.05
FastCmds : 14.10.00.08
FastIO
: 14.10.00.00
FastMBCS : 14.10.00.00
FastNtfy : 14.00.00.03
FastPars : 14.10.00.01
FastSQL
: 14.10.00.12
FastUtil : 14.10.00.01
Fdlosdep : 13.01.00.00
Teradata Data Connector : 14.10.00.00
PMPROCS
: 14.10.00.05
PMRWFMT
: 14.10.00.01
PMTRCE
: 13.10.00.02
PMMM
: 13.00.00.01
PMUDDI
: 14.10.00.03
DCUDDI
: 14.10.00.09
PMHEXDMP : 13.10.00.01
PMUNXDSK : 14.10.00.05
ICUVER
: TDICU, 14.10.00.00
CLIV2
: 14.10.00.15
MTDP
: 14.10.00.12
MOSIos
: 14.10.00.01
MOSIDEP
: 14.00.00.04
OSENCRYPT : N/A
OSERR
: 14.00.00.00
FastLoad linking date: Aug 16 2012
0004 DROP TABLE FL0020e1;
**** 11:20:52 RDBMS error 3807: Object 'FL0020e1' does not exist.
0005 DROP TABLE FL0020e2;
**** 11:20:52 RDBMS error 3807: Object 'FL0020e2' does not exist.
0006 DROP TABLE FL0020;
**** 11:20:52 Command completed successfully
0007 RECORD 1 THRU 10;
**** 11:20:52 Starting record number set to
**** 11:20:52 Ending record number set to
: 1
: 10
0008 create table FL0020
(a int,
b char(10));
**** 11:20:52 Command completed successfully
0009 DEFINE
FIELD1 (integer),
FIELD2 (char(10)),
FILE=FDAT02;
182
Teradata FastLoad Reference
Appendix B: Multifile Teradata FastLoad Job Script Examples
First Output File
**** 11:20:53 FDL4803 DEFINE statement processed
0010 BEGIN LOADING FL0020
ERRORFILES FL0020e1,FL0020e2 checkpoint 100;
****
****
****
****
****
11:20:53
11:20:53
11:20:53
11:20:53
11:20:53
Number of FastLoad sessions requested = 2
Number of FastLoad sessions connected = 2
FDL4808 LOGON successful
Number of AMPs available: 4
BEGIN LOADING COMPLETE
0011 SHOW;
FILE = FDAT02
FIELD1
FIELD2
TOTAL RECORD LENGTH = 14
OFFSET =
OFFSET =
0 LEN =
4 LEN =
4 INTEGER
10 CHAR
===================================================================
=
=
=
Insert Phase
=
=
=
===================================================================
0012 INSERT INTO FL0020(A,B)
VALUES (:field1,:FIELD2);
****
****
****
****
11:20:53
11:20:53
11:20:53
11:20:53
Number of recs/msg: 3382
Starting to send to RDBMS with record 1
Sending row 10
Finished sending rows to the RDBMS
**** 11:20:53 Acquisition Phase statistics:
Elapsed time: 00:00:00 (in hh:mm:ss)
CPU time:
0.0156001 Seconds
MB/sec:
N/A
MB/cpusec:
0.01
0013 SHOW;
FILE = FDAT02
FIELD1
FIELD2
TOTAL RECORD LENGTH = 14
OFFSET =
OFFSET =
0 LEN =
4 LEN =
4 INTEGER
10 CHAR
0014 LOGOFF;
===================================================================
=
=
=
Logoff/Disconnect
=
=
=
===================================================================
**** 11:20:54 Logging off all
**** 11:20:55 Total processor
.
Start : Fri Sep
.
End
: Fri Sep
Teradata FastLoad Reference
sessions
time used = '0.171601 Seconds'
21 11:20:51 2012
21 11:20:55 2012
183
Appendix B: Multifile Teradata FastLoad Job Script Examples
Second Output File
.
Highest return code encountered = '4'.
**** 11:20:55 FastLoad Paused
Second Output File
===================================================================
=
=
=
FASTLOAD UTILITY
VERSION 14.10.00.00
=
=
PLATFORM WIN32
=
=
=
===================================================================
===================================================================
=
=
=
Copyright 1984-2012, Teradata Corporation.
=
=
ALL RIGHTS RESERVED.
=
=
=
===================================================================
**** 11:23:09 Processing starting at: Fri Sep 21 11:23:09 2012
0001 .SESSIONS 10;
**** 11:23:09 FDL4866 SESSIONS command accepted
===================================================================
=
=
=
Logon/Connection
=
=
=
===================================================================
0002 .logon 153.65.168.87/weekly,
****
****
****
****
****
11:23:09
11:23:09
11:23:09
11:23:09
11:23:09
Teradata Database Release: 14.10.00.99
Teradata Database Version: 14.10.00.99
Number of AMPs available: 4
Current CLI or RDBMS allows maximum row size: 64K
Character set for this job: ASCII
0003 .SHOW VERSION;
FastLoad Version 14.10h.00.00 for Win 32 running Windows Sockets
FastLoad : 14.10.00.05
FastCmds : 14.10.00.08
FastIO
: 14.10.00.00
FastMBCS : 14.10.00.00
FastNtfy : 14.00.00.03
FastPars : 14.10.00.01
FastSQL
: 14.10.00.12
FastUtil : 14.10.00.01
Fdlosdep : 13.01.00.00
Teradata Data Connector : 14.10.00.00
PMPROCS
: 14.10.00.05
PMRWFMT
: 14.10.00.01
PMTRCE
: 13.10.00.02
184
Teradata FastLoad Reference
Appendix B: Multifile Teradata FastLoad Job Script Examples
Second Output File
PMMM
PMUDDI
DCUDDI
PMHEXDMP
PMUNXDSK
ICUVER
CLIV2
MTDP
MOSIos
MOSIDEP
OSENCRYPT
OSERR
:
:
:
:
:
:
:
:
:
:
:
:
13.00.00.01
14.10.00.03
14.10.00.09
13.10.00.01
14.10.00.05
TDICU, 14.10.00.00
14.10.00.15
14.10.00.12
14.10.00.01
14.00.00.04
N/A
14.00.00.00
FastLoad linking date: Aug 16 2012
0004 DROP TABLE FL0020e1;
**** 11:23:09 Command completed successfully
0005 DROP TABLE FL0020e2;
**** 11:23:09 Command completed successfully
0006 DROP TABLE FL0020;
**** 11:23:09 Command completed successfully
0007 RECORD 201 THRU 210;
**** 11:23:09 Starting record number set to
**** 11:23:09 Ending record number set to
: 201
: 210
0008 create table FL0020
(a int,
b char(10));
**** 11:23:09 Command completed successfully
0009 DEFINE
FIELD1 (integer),
FIELD2 (char(10)),
FILE=FDAT02;
**** 11:23:09 FDL4803 DEFINE statement processed
0010 BEGIN LOADING FL0020
ERRORFILES FL0020e1,FL0020e2 checkpoint 100;
****
****
****
****
****
11:23:10
11:23:10
11:23:10
11:23:10
11:23:10
Number of FastLoad sessions requested = 10
Number of FastLoad sessions connected = 4
FDL4808 LOGON successful
Number of AMPs available: 4
BEGIN LOADING COMPLETE
0011 SHOW;
FILE = FDAT02
FIELD1
Teradata FastLoad Reference
OFFSET =
0 LEN =
4 INTEGER
185
Appendix B: Multifile Teradata FastLoad Job Script Examples
Third Output File
FIELD2
TOTAL RECORD LENGTH = 14
OFFSET =
4 LEN =
10 CHAR
===================================================================
=
=
=
Insert Phase
=
=
=
===================================================================
0012 INSERT INTO FL0020(A,B)
VALUES (:field1,:FIELD2);
****
****
****
****
11:23:10
11:23:10
11:23:10
11:23:10
Number of recs/msg: 3382
Starting to send to RDBMS with record 201
Sending row 210
Finished sending rows to the RDBMS
**** 11:23:10 Acquisition Phase statistics:
Elapsed time: 00:00:00 (in hh:mm:ss)
CPU time:
0.0156001 Seconds
MB/sec:
N/A
MB/cpusec:
0.01
0013 SHOW;
FILE = FDAT02
FIELD1
FIELD2
TOTAL RECORD LENGTH = 14
OFFSET =
OFFSET =
0 LEN =
4 LEN =
4 INTEGER
10 CHAR
0014 LOGOFF;
===================================================================
=
=
=
Logoff/Disconnect
=
=
=
===================================================================
**** 11:23:10 Logging off all sessions
**** 11:23:12 Total processor time used = '0.343202 Seconds'
.
Start : Fri Sep 21 11:23:09 2012
.
End
: Fri Sep 21 11:23:12 2012
.
Highest return code encountered = '4'.
**** 11:23:12 FastLoad Paused
Third Output File
===================================================================
=
=
=
FASTLOAD UTILITY
VERSION 14.10.00.00
=
=
PLATFORM WIN32
=
=
=
===================================================================
===================================================================
186
Teradata FastLoad Reference
Appendix B: Multifile Teradata FastLoad Job Script Examples
Third Output File
=
=
=
Copyright 1984-2012, Teradata Corporation.
=
=
ALL RIGHTS RESERVED.
=
=
=
===================================================================
**** 12:12:03 Processing starting at: Fri Sep 21 12:12:03 2012
0001 .SESSIONS 10;
**** 12:12:03 FDL4866 SESSIONS command accepted
===================================================================
=
=
=
Logon/Connection
=
=
=
===================================================================
0002 .logon 153.65.168.87/weekly,
****
****
****
****
****
12:12:03
12:12:03
12:12:03
12:12:03
12:12:03
Teradata Database Release: 14.10.00.99
Teradata Database Version: 14.10.00.99
Number of AMPs available: 4
Current CLI or RDBMS allows maximum row size: 64K
Character set for this job: ASCII
0003 .SHOW VERSION;
FastLoad Version 14.10h.00.00 for Win 32 running Windows Sockets
FastLoad : 14.10.00.05
FastCmds : 14.10.00.08
FastIO
: 14.10.00.00
FastMBCS : 14.10.00.00
FastNtfy : 14.00.00.03
FastPars : 14.10.00.01
FastSQL
: 14.10.00.12
FastUtil : 14.10.00.01
Fdlosdep : 13.01.00.00
Teradata Data Connector : 14.10.00.00
PMPROCS
: 14.10.00.05
PMRWFMT
: 14.10.00.01
PMTRCE
: 13.10.00.02
PMMM
: 13.00.00.01
PMUDDI
: 14.10.00.03
DCUDDI
: 14.10.00.09
PMHEXDMP : 13.10.00.01
PMUNXDSK : 14.10.00.05
ICUVER
: TDICU, 14.10.00.00
CLIV2
: 14.10.00.15
MTDP
: 14.10.00.12
MOSIos
: 14.10.00.01
MOSIDEP
: 14.00.00.04
OSENCRYPT : N/A
OSERR
: 14.00.00.00
FastLoad linking date: Aug 16 2012
0004 DROP TABLE FL0020e1;
Teradata FastLoad Reference
187
Appendix B: Multifile Teradata FastLoad Job Script Examples
Third Output File
**** 12:12:04 Command completed successfully
0005 DROP TABLE FL0020e2;
**** 12:12:04 Command completed successfully
0006 DROP TABLE FL0020;
**** 12:12:04 Command completed successfully
0007 RECORD 201 THRU 210;
**** 12:12:04 Starting record number set to
**** 12:12:04 Ending record number set to
: 201
: 210
0008 create table FL0020
(a int,
b char(10));
**** 12:12:04 Command completed successfully
0009 DEFINE
FIELD1 (integer),
FIELD2 (char(10)),
FILE=FDAT02;
**** 12:12:04 FDL4803 DEFINE statement processed
0010 BEGIN LOADING FL0020
ERRORFILES FL0020e1,FL0020e2 checkpoint 100;
****
****
****
****
****
12:12:04
12:12:04
12:12:04
12:12:05
12:12:05
Number of FastLoad sessions requested = 10
Number of FastLoad sessions connected = 4
FDL4808 LOGON successful
Number of AMPs available: 4
BEGIN LOADING COMPLETE
0011 SHOW;
FILE = FDAT02
FIELD1
FIELD2
TOTAL RECORD LENGTH = 14
OFFSET =
OFFSET =
0 LEN =
4 LEN =
4 INTEGER
10 CHAR
===================================================================
=
=
=
Insert Phase
=
=
=
===================================================================
0012 INSERT INTO FL0020(A,B)
VALUES (:field1,:FIELD2);
****
****
****
****
188
12:12:05
12:12:05
12:12:05
12:12:05
Number of recs/msg: 3382
Starting to send to RDBMS with record 201
Sending row 210
Finished sending rows to the RDBMS
Teradata FastLoad Reference
Appendix B: Multifile Teradata FastLoad Job Script Examples
Third Output File
**** 12:12:05 Acquisition Phase statistics:
Elapsed time: 00:00:00 (in hh:mm:ss)
CPU time:
0 Seconds
MB/sec:
N/A
MB/cpusec:
N/A
0013 SHOW;
FILE = FDAT02
FIELD1
FIELD2
TOTAL RECORD LENGTH = 14
OFFSET =
OFFSET =
0 LEN =
4 LEN =
4 INTEGER
10 CHAR
===================================================================
=
=
=
End Loading Phase
=
=
=
===================================================================
0014 END LOADING;
**** 12:12:05 END LOADING COMPLETE
Total Records Read
- skipped by RECORD command
- sent to the RDBMS
Total Error Table 1
Total Error Table 2
Total Inserts Applied
Total Duplicate Rows
Start:
End :
=
=
=
=
=
=
=
210
200
10
0 ---- Table has been dropped
0 ---- Table has been dropped
10
0
Fri Sep 21 12:12:05 2012
Fri Sep 21 12:12:05 2012
**** 12:12:05 Application Phase statistics:
Elapsed time: 00:00:00 (in hh:mm:ss)
0015 LOGOFF;
===================================================================
=
=
=
Logoff/Disconnect
=
=
=
===================================================================
**** 12:12:05 Logging off all sessions
**** 12:12:06 Total processor time used = '0.249602 Seconds'
.
Start : Fri Sep 21 12:12:03 2012
.
End
: Fri Sep 21 12:12:06 2012
.
Highest return code encountered = '0'.
**** 12:12:06 FDL4818 FastLoad Terminated
Teradata FastLoad Reference
189
Appendix B: Multifile Teradata FastLoad Job Script Examples
Third Output File
190
Teradata FastLoad Reference
APPENDIX C
INMOD and Notify Exit Routine
Examples
This appendix provides program listings of sample INMOD and notify exit routines for the
following Teradata client platforms:
•
•
•
z/OS – example INMOD routines written in:
•
Assembler
•
COBOL
•
IBM C
•
PL/I
UNIX OS – the sample INMOD routines that are provided with Teradata FastLoad
software:
•
BLKEXIT.C
•
BLKEXITR.C
All Platforms – the notify exit routine:
flnfyext.c
z/OS
Assembler INMOD Example
The INMOD in the following example reads a record from the input data file and adds a
four-byte integer field to the front of the record. The new field contains a sequence record that
ranges from one to the total number of input records.
BULKCON TITLE’-- CONCATENATE INPUT RECORDS FOR INPUT TO FASTLOAD ’
BULKCON CSECT
USING BULKCON,15
********************************************************************
* THIS PROGRAM IS CALLED BY THE TERADATA FASTLOAD PROGRAMS
*
*
TO OBTAIN A RECORD TO BE USED TO INSERT, UPDATE, DELETE,
*
*
OR SELECT ROWS OF A DBC TABLE.
*
*
*
* THIS PROGRAM IS NOT REENTRANT.
*
* FUNCTION:
*
*
READ AN INPUT RECORD AND ADD A FOUR-BYTE INTEGER FIELD *
*
THE FRONT OF THE RECORD. THE NEW FIELD WILL CONTAIN
*
*
A SEQUENCE NUMBER WHICH RANGES FROM 1 TO ...
*
*
NUMBER-OF-INPUT-RECORDS.
*
Teradata FastLoad Reference
191
Appendix C: INMOD and Notify Exit Routine Examples
z/OS
*
*
*
RETURN TO THE CALLER, FASTLOAD, INDICATING
*
*
EITHER MORE RECORDS ARE AVAILABLE OR NO MORE RECORDS
*
*
ARE TO BE PROCESSED.
*
*
*
* THIS INMOD PROGRAM CAN BE USED TO ENSURE UNIQUE RECORDS
*
* IN CERTAIN APPLICATIONS, THE SEQUENCE FIELD
*
*
CAN BE USED FOR “DATA SAMPLING”.
*
*
*
* DDNAME OF THE INPUT DATA SET: “INDATA”
*
*
*
********************************************************************
B
STOREGS
BRANCH AROUND EP
DC
AL1(31)
DEFINE EP LENGTH
DC
CL9’BULKIN ’
DEFINE
DC
CL9’&SYSDATE’
ENTRY
DC
CL8’
MVS ’
POINT
DC
CL5’&SYSTIME’
IDENTIFIER
********************************************************************
*
SAVE REGISTERS
*
********************************************************************
STOREGS DS
0H
DEFINE AND ALIGN SYMBOL
STM
R14,R12,12(R13)
STORE OFF CALLER’S REGISTERS
LR
R12,R15
COPY BASE ADDRESS
DROP R15
DROP VOLATILE BASE REGISTER
USING BULKCON,R12
ESTAB PERM CSECT ADDRBLTY
LA
R14,SAVEAREA
POINT AT LOCAL SAVE WORK
ST
R14,8(,R13)
STORE FWD LINK IN SA CHAIN
ST
R13,4(,R14)
STORE BWD LINK IN SA CHAIN
LR
R13,R14
COPY LOCAL SAVE/WORK AREA ADDR
L
R11,0(,R1)
POINT TO PARM
SPACE 1
********************************************************************
*
VOPEN “DATA” DATA SET
*
*
(ONLY THE FIRST TIME)
*
********************************************************************
USING PREBUF,R11
COVER PRE-PROC AREA
LA
R9,PREREC
POINT TO START OF PREPROC. DATA
L
R15,PRECODE
CHECK ON CODE FROM FASTLOAD
OC
PRECODE,PRECODE
FIRST ENTRY ? (0=FIRST ENTRY)
BNZ
NOOPEN
NO, SKIP OPEN
USING IHADCB,R10
YES,COVER DCB FOR OPEN
LA
R10,INDATA
POINT TO DATA DCB
OPEN INDATA
OPEN INPUT DATA SET
TM
DCBOFLGS,X’10’
DID IT OPEN ?
BO
OPENOK
YES,
WTO
’UNABLE TO OPEN INDATADATA SET’,ROUTCDE=11
B
BADRET
RETURN WITH ERROR CODE
*******************************************************************
*
CHECK FASTLOAD/BULKLOAD STATUS CODES
*
* 0 = FIRST ENTRY
(FASTLOAD/BULKLOAD EXPECTS TO RECEIVE A *
*
RECORD)
*
* 1 = GET NEXT RECORD
(FASTLOAD/BULKLOAD EXPECTS TO RECEIVE A *
*
RECORD)
*
* 2 = Client RESTART CALL (FASTLOAD DOES NOT EXPECT A RECORD)
*
* 3 = CHECKPOINT CALL
(FASTLOAD DOES NOT EXPECT A RECORD)
*
* 4 = DBC RESTART CALL (FASTLOAD DOES NOT EXPECT A RECORD)
*
*
*
*
*
192
Teradata FastLoad Reference
Appendix C: INMOD and Notify Exit Routine Examples
z/OS
*
NOTE: THIS INMOD WAS WRITTEN TO BE COMPATIBLE WITH FASTLOAD *
*
AND BULKLOAD AND THEREFORE CONTAINS INFORMATION ON
*
*
STATUS CODES 2,3, AND 4 WHICH PERTAIN ONLY TO
*
*
FASTLOAD. CODES 2,3, AND 4 ARE NOT HANDLED BY
*
*
THIS PROGRAM.
*
*******************************************************************
OPENOK
DS 0H
MVI ISPOPEN,1
INDICATE INPUT FILE HAS BEEN OPEN
NOOPEN
L
R15,PRECODE
CHECK ON CODE FROM FASTLOAD
C
R15,=F’1’
NEED RECORD ?
BH
NOREC
NO , DO NOT “GET” A RECORD
L
R15,SAMPNUM
GET CURRENT SAMPLE NUM.
LA
R15,1(R15)
INCR BY 1
ST
R15,0(R9)
STORE AT FRONT OF RECORD
ST
R15,SAMPNUM
RESET COUNTER
LA
R9,4(R9)
ADVANCE FOR READ ADDR.
LA
R10,INDATA
COVER INDATA DCB
GETNEXT GET
INDATA,(R9)
READ A RECORD
INCREC
LH
R9,DCBLRECL
GET RECORD LENGTH
AH
R9,=H’4’
ADD 4 FOR NEW FIELD
SR
R15,R15
SET RETURN CODE VALUE
RETURN
ST
R9,PRELEN
SET LENGTH (ZERO AFTER EOF)
ST
R15,PRECODE
L
R13,4(,R13)
RETURN (14,12),RC=0
RETURN
SPACE
CLEANUP DS 0H
CLI
ISOPEN,0
IS INPUT FILE OPEN?
BE
RETURN
NO - JUST RETURN
B
EOF
CLEAN IT UP
SPACE5
********************************************************************
*
EOF ENTERED AT END-OF-FILE
*
********************************************************************
EOF
CLOSE INDATA
CLOSE INPUT DATA SET
MVI
ISOPEN,0
INDICATE FILE NOT OPEN
********************************************************************
NOREC
SR
R15,R15
SET ZERO RETURN CODE
SR
R9,R9
SET ZERO LENGTH
B
RETURN
RETURN
*
BADRET
LA
R15,16
SET RETURN CODE FOR ERROR
SR
R9,R9
SET LENGTH = 0
B
RETURN
ERROR RETURN
EJECT
*
*
CONSTANTS
*
R0
EQU
0
R1
EQU
1
R2
EQU
2
R3
EQU
3
R4
EQU
4
R5
EQU
5
R6
EQU
6
R7
EQU
7
R8
EQU
8
R9
EQU
9
R10
EQU
10
Teradata FastLoad Reference
193
Appendix C: INMOD and Notify Exit Routine Examples
z/OS
R11
R12
R13
R14
R15
*
*
*
EQU
EQU
EQU
EQU
EQU
EJECT
11
12
13
14
15
DATA STRUCTURES AND VARIABLES
SPACE
SAVEAREA DC
SAMPNUM DC
ISOPEN
DC
SPACE
INDATA
DCB
PREBUF
DSECT
PRECODE DS
PRELEN
DS
ROWSIZE EQU
PREREC
DS
DCBD
END
18F’0’
SAVE AREA
F’0’
XL1’00’
OPEN FILE INDICATOR
10
DDNAME=INDATA,MACRF=(GM),DSORG=PS,EODAD=EOF
F
F
31774
MAXIMUM ROW SIZE
0XL(ROWSIZE)
DEVD=DA,DSORG=PS
COBOL INMOD Example
The INMOD in the following example reads five 80-byte records from the input data file,
combines them, then returns a single, 400-byte record to the Teradata FastLoad utility.
IDENTIFICATION DIVISION.
PROGRAM-ID. BLKEXIT.
AUTHOR. STV
.
INSTALLATION. TERADATA.
DATE-WRITTEN. 05 APRIL 1984.
DATE-COMPILED.
SECURITY. OPEN.
REMARKS.
THIS PROGRAM IS AN EXAMPLE OF A COBOL INMOD ROUTINE.
THE NAME MUST BE BLKEXIT.
FUNCTION:
THE PROGRAM READS FIVE 80-BYTE RECORDS AND
RETURNS A COMPOSITE RECORD WHICH IS 400 BYTES
LONG.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. IBM-370.
OBJECT-COMPUTER. IBM-370.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT INMOD-DATA-FILE ASSIGN TO SYSIN-INDATA.
DATA DIVISION.
FILE SECTION.
FD
INMOD-DATA-FILE
BLOCK CONTAINS 0 RECORDS
LABEL RECORDS STANDARD.
01
INPUT-PARM-AREA
PICTURE IS X(80).
194
Teradata FastLoad Reference
Appendix C: INMOD and Notify Exit Routine Examples
z/OS
WORKING-STORAGE SECTION.
01
NUMIN
PIC S9(4) COMP VALUE +0.
01
NUMOUT
PIC S9(4) COMP VALUE +0.
01
FILES_OPEN PIC S9(4) COMP VALUE +0.
LINKAGE SECTION.
01
STRUCT.
02 RETURN-INDICATEPIC S9(9) COMP.
02 RECORD-LEN
PIC S9(9) COMP.
02 RECORD-BODY.
03 DATA-AREA1 PIC X(80).
03 DATA-AREA2 PIC X(80).
03 DATA-AREA3 PIC X(80).
03 DATA-AREA4 PIC X(80).
03 DATA-AREA5 PIC X(80).
PROCEDURE DIVISION USING STRUCT.
BEGIN.
MAIN.
IF RETURN-INDICATE = 0 THEN
DISPLAY ’BLKEXIT CALLED - RETURN CODE 0’
PERFORM OPEN-FILES
PERFORM READ-RECORDS
GOBACK
ELSE
IF RETURN-INDICATE = 1 THEN
DISPLAY ’BLKEXIT CALLED - RETURN CODE 1’
PERFORM READ-RECORDS
GOBACK
ELSE
IF RETURN-INDICATE = 2 THEN
DISPLAY ’BLKEXIT CALLED - RETURN CODE 2’
PERFORM OPEN-FILES
MOVE 0 TO RECORD-LEN
GOBACK
ELSE
IF RETURN-INDICATE = 5 THEN
DISPLAY ’BLKEXIT CALLED - RETURN CODE 5’
IF FILES_OPEN = 1
THEN
CLOSE INMOD-DATA-FILE
MOVE 0 TO FILES_OPEN.
MOVE 0 TO RECORD-LEN
GOBACK
ELSE
DISPLAY ’BLKEXIT CALLED - RETURN CODE X’
GOBACK.
OPEN-FILES SECTION.
OPEN INPUT INMOD-DATA-FILE.
MOVE 1 TO FILES_OPEN.
MOVE 0 TO RETURN-INDICATE.
READ-RECORDS SECTION.
MOVE 0 TO BLOCK-NUM.
READ INMOD-DATA-FILE INTO DATA-AREA1
AT END GO TO END-DATA.
ADD 1 TO NUMIN.
READ INMOD-DATA-FILE INTO DATA-AREA2
AT END GO TO END-DATA.
ADD 1 TO NUMIN.
READ INMOD-DATA-FILE INTO DATA-AREA3
AT END GO TO END-DATA.
Teradata FastLoad Reference
195
Appendix C: INMOD and Notify Exit Routine Examples
z/OS
ADD 1 TO NUMIN.
READ INMOD-DATA-FILE INTO DATA-AREA4
AT END GO TO END-DATA
ADD 1 TO NUMIN.
READ INMOD-DATA-FILE INTO DATA-AREA5
AT END GO TO END-DATA.
ADD 1 TO NUMIN.
MOVE 0 TO RETURN-INDICATE.
MOVE 400 TO RECORD-LEN.
ADD 1 TO NUMOUT.
END-DATA SECTION.
MOVE 0 TO RETURN-INDICATE.
CLOSE INMOD-DATA-FILE.
MOVE 0 TO FILES_OPEN.
DISPLAY ’NUMBER OF INPUT RECORDS =’ NUMIN.
DISPLAY ’NUMBER OF OUTPUT RECORDS=’ NUMOUT.
MOVE 0 TO RECORD-LEN.
MOVE 99 TO RETURN-INDICATE.
GOBACK.
PL/I INMOD Example
The INMOD in the following example reads the data from the input file and presents it as read
to the Teradata FastLoad utility.
This basic program can be modified to select records that meet a specified criteria, convert
certain fields, or perform other preprocessing functions.
BLKEXIT: PROC (PARM_LIST) OPTIONS(MAIN);
/* Routine name must always be BLKEXIT */
DCL EXPORT FILE RECORD INPUT;
DCL EOF FIXED BINARY (31,0) INIT (0);
DCL THIS_LENGTH FIXED BINARY (31,0);
DCL1 PARM_LIST,
10 STATUS
FIXED BINARY (31,0),
10 RLENGTH FIXED BINARY (31,0),
10 CCDB_REC CHAR (80);
ON ENDFILE (EXPORT) EOF = 1;
IF STATUS = 3
/* disregard restarts and checkpoints */
THEN GO TO PROC_RETURN;
IF STATUS = 4
/* disregard restarts and checkpoints */
THEN GO TO PROC_RETURN;
IF STATUS = 2
/* client restart */
/*Note:STATUS values 2 , 3 and 4 are only applicable to
the FastLoad program. An INMOD program can be written
to interface with either FastLoad or Bulk Data Load -STATUS values greater than ’1’ will not be set by the
Bulk Data Load program.
THEN DO;
OPEN FILE (EXPORT);
GO TO PROC_RETURN;
END;
IF STATUS = 0
/* CHECK FOR FIRST-TIME-THRU CYCLE */
THEN DO;
OPEN FILE (EXPORT);
END;
RLENGTH = 80;
196
*/
Teradata FastLoad Reference
Appendix C: INMOD and Notify Exit Routine Examples
UNIX OS
READ FILE (EXPORT) INTO (CCDB_REC);
IFEOF = 1
THEN DO;
CLOSE FILE (EXPORT);
STATUS=1;
/* INDICATE EOF TO BDL OR FDL */
RLENGTH = 0;
GO TO PROC_RETURN;
END;
STATUS=0; /* INDICATE NEXT RECORD TO BDL OR FDL */
/* Additional processing can be done at this point */
PROC_RETURN:
END BLKEXIT ‘OPTIONS(MAIN)’;
IBM C INMOD Example
Refer to “BLKEXITR.C Sample INMOD” on page 202. The BLKEXITR.C sample, because it is
written in C and the entry point is written for all platforms, would work on the mainframe for
an IBM C INMOD.
UNIX OS
BLKEXIT.C Sample INMOD
Following is the listing of the BLKEXIT.C sample INMOD routine that is provided with the
Teradata FastLoad utility software:
/*************************************************************************
*
* Title: BLKEXIT - sample INMOD routine
*
* Copyright (C) 1996-2012 by Teradata Corporation.
* All Rights Reserved.
* Teradata Corporation CONFIDENTIAL AND TRADE SECRET
*
* This copyrighted material is the Confidential, Unpublished
* Property of the Teradata Corporation. This copyright notice and
* any other copyright notices included in machine readable
* copies must be reproduced on all authorized copies.
*
*
* Description This file contains a sample INMOD, written in C.
*
This file does not support DBS restarts.
*
*
* History Information
*
* Revision
Date
DCR
DID
Comments
* ----------- -------- ----- ------- --------------------------------------* 13.00.00.01 09072007 114414 NT185003 Teradata Corporation Copyright
* 13.00.00.00 09012007 100894 SV185048 Visual Studio 8.0 build
* 07.07.00.01 06/22/05 96206 CSG
Port to HP-UX-11.23 on Itanium
* 07.01.00.01 11/12/98 44120 SF3
Release for FastLoad 7.1
* 06.00.00.00 07/18/96 34208 SF3
Release for FastLoad 6.0
*
*
Teradata FastLoad Reference
197
Appendix C: INMOD and Notify Exit Routine Examples
UNIX OS
* How to build this INMOD on a UNIX operating system:
*
*
Compile and link it into a shared object:
*
*
cc -G -KPIC <inmod-name>.c -o <shared-object-name>
*
*
* How to use this program:
*
*
This INMOD routine will generate 2 columns of data:
*
*
4-byte integer counter for the Unique Primary Index
*
10-byte character string
*
* This sample INMOD will generate 100,000 rows, if no RECORD
* statement is used in the FastLoad job script.
*
* A sample of the job script for this INMOD would be as follows:
*
*
* use your own system, account and password here.
*
LOGON tdpid/user,password;
DROP TABLE Error_1;
DROP TABLE Error_2;
DROP TABLE TestTable;
CREATE TABLE TestTable AS (
Counter Integer,
text
char(10) )
UNIQUE PRIMARY INDEX(Counter);
BEGIN LOADING TestTable ErrorFiles Error_1, Error_2;
DEFINE
Counter (Integer),
text
(char(10))
INMOD=<shared-object-name>;
INSERT INTO TestTable
(Counter, text)
VALUES
(:Counter, :text);
END LOADING;
LOGOFF;
*************************************************************************/
#include <stdio.h>
#include <string.h>
#define FILEOF
#define EM_OK
401
0
#define NUMROWS
#define ROWSIZE
100000
64000
198
Teradata FastLoad Reference
Appendix C: INMOD and Notify Exit Routine Examples
UNIX OS
typedef int Int32; /* */
typedef unsigned int UInt32; /* */
typedef short Int16;
typedef struct inmod_struct {
Int32 ReturnCode;
Int32 Length;
char Body[ROWSIZE];
} inmdtyp,*inmdptr;
inmdptr inmodptr;
char *str = "123test890";
Int32 reccnt = 0;
/*************************************************************************
*
* MakeRecord - Generate a record
*
*
This module creates the data record
*
*
In this example, we are just generating dummy records
*
with canned data, only we change the first column,
*
essentially a record number, so that each row is unique.
*
*
For performance reasons, we do not change the 2nd column.
*
*************************************************************************/
Int32 MakeRecord()
{
char *p;
/* have we reached EOF yet? */
if (reccnt >= NUMROWS)
return(FILEOF);
/* nope. get start of buffer */
p = inmodptr->Body;
/* place column 1, a unique primary index */
memcpy(p, &reccnt, (UInt32)sizeof(reccnt));
p += sizeof(reccnt);
/* place column 2, a string */
memcpy(p, str, strlen(str));
p += strlen(str);
inmodptr->ReturnCode = 0;
inmodptr->Length = p - inmodptr->Body;
reccnt++;
return(EM_OK);
}
Teradata FastLoad Reference
199
Appendix C: INMOD and Notify Exit Routine Examples
UNIX OS
/*************************************************************************
*
* HostRestart - Host restarted
*
*
Reset and start sending data from the begining.
*
*************************************************************************/
Int32 HostRestart()
{
return(EM_OK);
}
/*************************************************************************
*
* CheckPoint - Save checkpoint
*
*************************************************************************/
Int32 CheckPoint()
{
return(EM_OK);
}
/*************************************************************************
*
* DBSRestart - DBS restarted
*
*
Do what you have to do.
*
Reset record counter to checkpoint value
*
*************************************************************************/
Int32 DBSRestart()
{
return(EM_OK);
}
/*************************************************************************
*
* CleanUp - Do cleanup.
*
*************************************************************************/
Int32 CleanUp()
{
return(EM_OK);
}
/*************************************************************************
*
* InvalidCode - Invalid INMOD code returned.
*
*************************************************************************/
Int32 InvalidCode()
{
fprintf(stderr, "**** Invalid code received by INMOD\n");
return(EM_OK);
}
/*************************************************************************
*
200
Teradata FastLoad Reference
Appendix C: INMOD and Notify Exit Routine Examples
UNIX OS
* Init - initialize some stuff
*
*
Do any initialization necessary
*
*************************************************************************/
Int32 Init()
{
return(EM_OK);
}
/*************************************************************************
*
* BLKEXIT - Start processing
*
*
This is the main module which contains the checks for
*
number of records generated and buffer filling. This
*
module also sends the filled buffer to the DBS.
*
*************************************************************************/
#if defined WIN32
__declspec(dllexport) Int32 BLKEXIT(tblptr)
#elif defined I370
Int32 _dynamn(tblptr)
#else
Int32 BLKEXIT(tblptr)
#endif
char *tblptr;
{
Int32 result;
inmodptr = (struct inmod_struct *)tblptr;
/* process the function passed to the INMOD */
switch (inmodptr->ReturnCode) {
case 0: result = Init();
if (result)
break;
result = MakeRecord();
break;
case 1: result = MakeRecord();
break;
case 2: result = HostRestart();
break;
case 3: result = CheckPoint();
break;
case 4: result = DBSRestart();
break;
case 5: result = CleanUp();
break;
default: result = InvalidCode();
}
/* see if we have reached EOF condition */
if (result == FILEOF) {
inmodptr->Length = 0;
result = EM_OK;
}
Teradata FastLoad Reference
201
Appendix C: INMOD and Notify Exit Routine Examples
UNIX OS
return(result);
}
BLKEXITR.C Sample INMOD
Following is the listing of the BLKEXITR.C sample INMOD routine that is provided with the
Teradata FastLoad utility software:
/*************************************************************************
*
* Title: BLKEXITR - sample INMOD routine
*
* Copyright (C) 1996-2012 by Teradata Corporation.
* All Rights Reserved.
* Teradata Corporation CONFIDENTIAL AND TRADE SECRET
*
* This copyrighted material is the Confidential, Unpublished
* Property of the Teradata Corporation. This copyright notice and
* any other copyright notices included in machine readable
* copies must be reproduced on all authorized copies.
*
*
* Description This file contains a sample INMOD, written in C.
*
This file supports DBS restarts.
*
*
* History Information
*
* Revision
Date
DCR
DID
Comments
* ----------- -------- ----- ------- --------------------------------------* 13.00.00.01 09072007 114414 NT185003 Teradata Corporation Copyright
* 13.00.00.00 09012007 100894 SV185048 Visual Studio 8.0 build
* 07.07.00.01 06/23/05 96206 CSG
Port to HPUX-11.23 on Itanium
* 07.01.00.01 11/12/98 44120 SF3
Release for FastLoad 7.1
* 06.00.00.00 07/18/96 34208 SF3
Release for FastLoad 6.0
*
*
* How to build this INMOD on a UNIX operating system:
*
*
Compile and link it into a shared object:
*
*
cc -G -KPIC <inmod-name>.c -o <shared-object-name>
*
*
* How to use this program:
*
*
This INMOD routine will generate 2 columns of data:
*
*
4-byte integer counter for the Unique Primary Index
*
10-byte character string
*
* This sample INMOD will generate 100,000 rows, if no RECORD
* statement is used in the FastLoad job script.
*
* A sample of the job script for this INMOD would be as follows:
*
*
202
Teradata FastLoad Reference
Appendix C: INMOD and Notify Exit Routine Examples
UNIX OS
* use your own system, account and password here.
*
LOGON tdpid/user,password;
DROP TABLE Error_1;
DROP TABLE Error_2;
DROP TABLE TestTable;
CREATE TABLE TestTable AS (
Counter Integer,
text
char(10) )
UNIQUE PRIMARY INDEX(Counter);
BEGIN LOADING TestTable ErrorFiles Error_1, Error_2;
DEFINE
Counter (Integer),
text
(char(10))
INMOD=<shared-object-name>;
INSERT INTO TestTable
(Counter, text)
VALUES
(:Counter, :text);
END LOADING;
LOGOFF;
*************************************************************************/
#include <stdio.h>
#include <string.h>
#define FILEOF
#define EM_OK
401
0
#define NUMROWS
#define ROWSIZE
100000
64000
typedef int Int32; /* */
typedef unsigned int UInt32; /* */
typedef short Int16;
typedef struct inmod_struct {
Int32 ReturnCode;
Int32 Length;
char Body[ROWSIZE];
} inmdtyp,*inmdptr;
inmdptr inmodptr;
char *str = "123test890";
char *fname = "chkpoint.dat";
FILE *fp = NULL;
Int32 reccnt = 0;
Int32 chkpnt;
Teradata FastLoad Reference
203
Appendix C: INMOD and Notify Exit Routine Examples
UNIX OS
/*************************************************************************
*
* MakeRecord - Generate a record
*
*
This module creates the data record
*
*
In this example, we are just generating dummy records
*
with canned data, only we change the first column,
*
essentially a record number, so that each row is unique.
*
*************************************************************************/
Int32 MakeRecord()
{
char *p;
/* have we reached EOF yet? */
if (reccnt >= NUMROWS)
return(FILEOF);
/* nope. get start of buffer */
p = inmodptr->Body;
/* place column 1, a unique primary index */
memcpy(p, &reccnt, (UInt32)sizeof(reccnt));
p += sizeof(reccnt);
/* place column 2, a string */
memcpy(p, str, strlen(str));
p += strlen(str);
inmodptr->ReturnCode = 0;
inmodptr->Length = p - inmodptr->Body;
reccnt++;
return(EM_OK);
}
/*************************************************************************
*
* HostRestart - Host restarted
*
*
Retrieve the checkpoint information from the checkpoint file.
*
Reset record counter to checkpoint value
*
*************************************************************************/
Int32 HostRestart()
{
Int32 result;
/* see if the file is already open */
if (!fp) {
fp = fopen(fname, "r+");
if (!fp)
204
Teradata FastLoad Reference
Appendix C: INMOD and Notify Exit Routine Examples
UNIX OS
return(!EM_OK);
}
rewind(fp);
result = fread(&chkpnt, sizeof(chkpnt), 1, fp);
if (result != 1) {
fprintf(stderr, "INMOD: ERROR READING CHECKPOINT FILE\n");
fprintf(stderr, "INMOD: %d ELEMENTS WERE READ\n", result);
perror("INMOD");
return(!EM_OK);
}
fprintf(stderr, "INMOD: HOST RESTARTED. CHECKPOINT: %d\n", chkpnt);
reccnt = chkpnt;
return(EM_OK);
}
/*************************************************************************
*
* CheckPoint - Save checkpoint
*
*************************************************************************/
Int32 CheckPoint()
{
Int32 result;
chkpnt = reccnt;
rewind(fp);
result = fwrite(&chkpnt, sizeof(chkpnt), 1, fp);
if (result != 1) {
fprintf(stderr, "INMOD: ERROR WRITING TO CHECKPOINT FILE\n");
fprintf(stderr, "INMOD: %d ELEMENTS WERE WRITTEN\n", result);
perror("INMOD");
return(!EM_OK);
}
fprintf(stderr, "INMOD: CHECKPOINT AT ROW: %d\n", chkpnt);
return(EM_OK);
}
/*************************************************************************
*
* DBSRestart - DBS restarted
*
*
Retrieve the checkpoint information from the checkpoint file.
*
Reset record counter to checkpoint value
*
*************************************************************************/
Int32 DBSRestart()
{
Int32 result;
/* see if the file is already open */
if (!fp) {
Teradata FastLoad Reference
205
Appendix C: INMOD and Notify Exit Routine Examples
UNIX OS
fp = fopen(fname, "r+");
if (!fp)
return(!EM_OK);
}
rewind(fp);
result = fread(&chkpnt, sizeof(chkpnt), 1, fp);
if (result != 1) {
fprintf(stderr, "INMOD: ERROR READING CHECKPOINT FILE\n");
fprintf(stderr, "INMOD: %d ELEMENTS WERE READ\n", result);
perror("INMOD");
return(!EM_OK);
}
fprintf(stderr, "INMOD: DBS RESTARTED. CHECKPOINT: %d\n", chkpnt);
reccnt = chkpnt;
return(EM_OK);
}
/*************************************************************************
*
* CleanUp - Do cleanup.
*
*
Here we close the file and then remove it.
*
*************************************************************************/
Int32 CleanUp()
{
fclose(fp);
remove(fname);
return(EM_OK);
}
/*************************************************************************
*
* InvalidCode - Invalid INMOD code returned.
*
*************************************************************************/
Int32 InvalidCode()
{
fprintf(stderr, "**** Invalid code received by INMOD\n");
return(EM_OK);
}
/*************************************************************************
*
* Init - initialize some stuff
*
*
Do any initialization necessary
*
*
For this example, we will open a disk file to hold
*
the checkpoint information. For this example, we
*
will just store the row number. If this INMOD was
*
reading data from a file, then the file position
*
would need to be stored.
*
*************************************************************************/
206
Teradata FastLoad Reference
Appendix C: INMOD and Notify Exit Routine Examples
UNIX OS
Int32 Init()
{
fp = fopen(fname, "w");
if (!fp)
return(!EM_OK);
return(EM_OK);
}
/*************************************************************************
*
* BLKEXIT - Start processing
*
*
This is the main module which contains the checks for
*
number of records generated and buffer filling. This
*
module also sends the filled buffer to the DBS.
*
*************************************************************************/
#if defined WIN32
__declspec(dllexport) Int32 BLKEXIT(tblptr)
#elif defined I370
Int32 _dynamn(tblptr)
#else
Int32 BLKEXIT(tblptr)
#endif
char *tblptr;
{
Int32 result;
inmodptr = (struct inmod_struct *)tblptr;
/* process the function passed to the INMOD */
switch (inmodptr->ReturnCode) {
case 0: result = Init();
if (result)
break;
result = MakeRecord();
break;
case 1: result = MakeRecord();
break;
case 2: result = HostRestart();
break;
case 3: result = CheckPoint();
break;
case 4: result = DBSRestart();
break;
case 5: result = CleanUp();
break;
default: result = InvalidCode();
}
/* see if we have reached EOF condition */
if (result == FILEOF) {
inmodptr->Length = 0;
result = EM_OK;
}
Teradata FastLoad Reference
207
Appendix C: INMOD and Notify Exit Routine Examples
All Platforms
return(result);
}
All Platforms
Notify Exit Routine Example
The user exit routine in the following example processes events specified by the NOTIFY
command.
===============================================================================
/***************************************************************************
*
* TITLE: flnfyext.c .... an example notify exit...
*
* Copyright(C) 1996-2005, 2007-2012 by Teradata Corporation.
* All Rights Reserved.
* Teradata Corporation CONFIDENTIAL AND TRADE SECRET
*
* This copyrighted material is the Confidential, Unpublished
* Property of the Teradata Corporation. This copyright notice and
* any other copyright notices included in machine readable
* copies must be reproduced on all authorized copies.
*
*
* Description This file is a sample user exit routine for
*
processing NOTIFY events
*
* History Information
*
* Revision
Date
DCR
DID
Comments
* ----------- -------- ----- -------- -------------------------------------* 14.10.00.00 10192012 SA-28595 NT185003 FL supports Notify Exit EON
* 14.00.00.04 06292012 SA-1863 NT185003 Support 8-byte row count (DR141961)
* 14.00.00.03 03112011 117582 AS185203 EON Support
* 14.00.00.02 11152010 141961 NT185003 Support 8 byte row count
* 14.00.00.01 11032010 109902 SV185048 Added database name to notify
* 13.00.00.01 09072007 114414 NT185003 Teradata Corporation Copyright
* 13.00.00.00 09012007 100894 SV185048 Visual Studio 8.0 build
* 07.07.00.01 09292005 96206 CSG
Port to HPUX-IA64 platform
* 07.06.00.02 06182004 68859 XX151000 Back out branding changes
* 07.06.00.01 01142004 68859 XX151000 Change DBS to TERADATA DATABASE
* 07.01.00.01 07/10/98 42517 SF3
Redesign User Exit Interface
* 06.01.00.01 04/04/97 34579 SF3
Initial Version
*
*
* Notes
The entry point to this User Exit must
*
be called "_dynamn"
* Notes DR141961 and SA-1863 : support 8 byte row counters
*
To display correctly, please use the events:
*
*
NFEventCheckPoint64
= 13
*
NFEventPhaseIEnd64
= 14
*
NFEventPhaseIIEnd64
= 15
*
NFEventDropErrTableI64 = 16
*
NFEventDropErrTableII64= 17
208
Teradata FastLoad Reference
Appendix C: INMOD and Notify Exit Routine Examples
All Platforms
*
*
instead of
*
*
NFEventCheckPoint
= 3
*
NFEventPhaseIEnd
= 4
*
NFEventPhaseIIEnd
= 6
*
NFEventDropErrTableI
= 7
*
NFEventDropErrTableII = 8
*
* Note SA-28595, please use 2 new events
*
*
NFEventInitializeEON
= 18
*
NFEventPhaseIBeginEON = 19
*
*
*
FastLoad works with both OLD and NEW Notify Exit.
*
***************************************************************************/
#include <stdio.h>
/* DR 96206 --> */
typedef int Int32;
typedef unsigned int UInt32;
#ifdef WIN32
typedef unsigned __int64
UInt64 ;
#else
typedef unsigned long long UInt64 ;
#endif
/* DR 96206 <-- */
typedef enum { NFEventInitialize
=
NFEventFileInmodOpen
=
NFEventPhaseIBegin
=
NFEventCheckPoint
=
NFEventPhaseIEnd
=
NFEventPhaseIIBegin
=
NFEventPhaseIIEnd
=
NFEventDropErrTableI
=
NFEventDropErrTableII =
NFEventDBSRestart
=
NFEventCLIError
=
NFEventDBSError
=
NFEventExit
=
/* DR141961 ==> */
NFEventCheckPoint64
=
NFEventPhaseIEnd64
=
NFEventPhaseIIEnd64
=
NFEventDropErrTableI64 =
NFEventDropErrTableII64=
/* DR141961 <== */
/* SA-28595 ==> */
NFEventInitializeEON
=
NFEventPhaseIBeginEON =
/* SA-28595 <== */
} NfyFLDEvent;
#define ID_FASTLOAD
#define ID_MULTILOAD
#define ID_FASTEXPORT
Teradata FastLoad Reference
/* DR141961 */
/* DR141961 */
0
1
2
3
4
5
6
7
8
9
10
11
12
,
,
,
,
,
,
,
,
,
,
,
,
,
13
14
15
16
17
,
,
,
,
,
18 ,
19
1
2
3
209
Appendix C: INMOD and Notify Exit Routine Examples
All Platforms
#define ID_BTEQ
#define ID_TPUMP
#define
#define
#define
#define
#define
#define
#define
#define
4
5
MAXVERSIONIDLEN
MAXUTILITYNAMELEN
MAXUSERNAMELEN
MAXUSERSTRLEN
MAXTABLENAMELEN
MAXFILENAMELEN
MAXDBASENAMELEN
MAXUINT64
32
32
129
80
129
256
129
24
/* DR117582 */ /* SA-28595 */
/* DR117582 */ /* SA-28595 */
/* DR117582 */ /* DR109902 */ /* SA-28595 */
/* DR141961 */
typedef struct _FLNotifyExitParm {
Int32 Event;
union {
struct {
UInt32 VersionLen;
char
VersionId[MAXVERSIONIDLEN];
UInt32 UtilityId;
UInt32 UtilityNameLen;
char
UtilityName[MAXUTILITYNAMELEN];
UInt32 UserNameLen;
char
UserName[MAXUSERNAMELEN];
UInt32 UserStringLen;
char
UserString[MAXUSERSTRLEN];
} Initialize;
/* SA-28595 ==> */
struct {
UInt32 VersionLen;
char
VersionId[MAXVERSIONIDLEN];
UInt32 UtilityId;
UInt32 UtilityNameLen;
char
UtilityName[MAXUTILITYNAMELEN];
UInt32 UserNameLen;
char
*UserName;
UInt32 UserStringLen;
char
UserString[MAXUSERSTRLEN];
} InitializeEON;
/* SA-28595 <== */
struct {
UInt32 FileNameLen;
char
FileOrInmodName[MAXFILENAMELEN];
} FileInmodOpen ;
struct {
char
DBaseName[MAXDBASENAMELEN];
/* DR109902 */
UInt32 TableNameLen;
char
TableName[MAXTABLENAMELEN];
UInt32 dummy;
} PhaseIBegin ;
/* SA-28595 ==> */
struct {
char
*DBaseName;
UInt32 TableNameLen;
char
*TableName;
UInt32 dummy;
} PhaseIBeginEON ;
/* SA-28595 <== */
struct {
UInt32 RecordCount;
210
Teradata FastLoad Reference
Appendix C: INMOD and Notify Exit Routine Examples
All Platforms
} CheckPoint;
/* DR141961 ==> */
struct {
char
RecordCount[MAXUINT64];
} CheckPoint64;
/* DR141961 <== */
struct {
UInt32 RecsRead;
UInt32 RecsSkipped;
UInt32 RecsRejected;
UInt32 RecsSent;
} PhaseIEnd ;
/* DR141961 ==> */
struct {
char RecsRead[MAXUINT64];
char RecsSkipped[MAXUINT64];
char RecsRejected[MAXUINT64];
char RecsSent[MAXUINT64];
} PhaseIEnd64 ;
/* DR141961 <== */
struct {
UInt32 dummy;
} PhaseIIBegin;
struct {
UInt32 Inserts;
UInt32 dummy1;
UInt32 dummy2;
UInt32 dummy3;
} PhaseIIEnd;
/* DR141961 ==> */
struct {
char Inserts[MAXUINT64];
UInt32 dummy1;
UInt32 dummy2;
UInt32 dummy3;
} PhaseIIEnd64;
/* DR141961 <== */
struct {
UInt32 Rows;
UInt32 dummy;
} DropErrTableI;
/* DR141961 ==> */
struct {
char
Rows[MAXUINT64];
UInt32 dummy;
} DropErrTableI64;
/* DR141961 <== */
struct {
UInt32 Rows;
UInt32 dummy;
} DropErrTableII ;
/* DR141961 ==> */
struct {
char
Rows[MAXUINT64];
UInt32 dummy;
} DropErrTableII64 ;
/* DR141961 <== */
struct {
UInt32 dummy;
Teradata FastLoad Reference
211
Appendix C: INMOD and Notify Exit Routine Examples
All Platforms
} DBSRestart;
struct {
UInt32 ErrorCode;
} CLIError;
struct {
UInt32 ErrorCode;
} DBSError;
struct {
UInt32 ReturnCode;
} Exit;
} Vals;
} FLNotifyExitParm;
/*************************************************************************
*
*
CODE STARTS HERE
*
*************************************************************************/
#ifdef WIN32
__declspec(dllexport) Int32 _dynamn(FLNotifyExitParm *P)
#else
Int32 _dynamn(FLNotifyExitParm *P)
#endif
{
static FILE *fp;
if (!fp) {
#ifdef I370
if (!(fp = fopen("NFYEXIT", "w")))
return(1);
#else
if (!(fp = fopen("NFYEXIT.OUT", "w")))
return(1);
#endif
}
switch(P->Event) {
case NFEventInitialize :
fprintf(fp,
"exit called @ FastLoad Notify initialization.\n");
fprintf(fp,
"
Version Id:
%s.\n",
P->Vals.Initialize.VersionId);
fprintf(fp,
"
Utility Id:
%d.\n",
P->Vals.Initialize.UtilityId);
fprintf(fp,
"
Utility Name: %s.\n",
P->Vals.Initialize.UtilityName);
fprintf(fp,
"
User Name:
%s.\n",
P->Vals.Initialize.UserName);
break;
/* SA-28595 ==> */
case NFEventInitializeEON :
fprintf(fp,
"exit called @ FastLoad Notify initialization.\n");
fprintf(fp,
212
Teradata FastLoad Reference
Appendix C: INMOD and Notify Exit Routine Examples
All Platforms
"
Version Id:
%s.\n",
P->Vals.InitializeEON.VersionId);
fprintf(fp,
"
Utility Id:
%d.\n",
P->Vals.InitializeEON.UtilityId);
fprintf(fp,
"
Utility Name: %s.\n",
P->Vals.InitializeEON.UtilityName);
fprintf(fp,
"
User Name:
%s.\n",
P->Vals.InitializeEON.UserName);
break;
/* SA-28595 <== */
case NFEventFileInmodOpen :
fprintf(fp,
"exit called @ FastLoad file/inmod open: %s.\n",
P->Vals.FileInmodOpen.FileOrInmodName);
break;
case NFEventPhaseIBegin :
fprintf(fp,
"exit called @ FastLoad phase I (start) for Database %s.\n",
P->Vals.PhaseIBegin.DBaseName);
/* 109902 */
fprintf(fp,
"exit called @ FastLoad phase I (start) for table %s.\n",
P->Vals.PhaseIBegin.TableName);
break;
/* SA-28595 ==> */
case NFEventPhaseIBeginEON :
fprintf(fp,
"exit called @ FastLoad phase I (start) for Database %s.\n",
P->Vals.PhaseIBeginEON.DBaseName);
/* 109902 */
fprintf(fp,
"exit called @ FastLoad phase I (start) for table %s.\n",
P->Vals.PhaseIBeginEON.TableName);
break;
/* SA-28595 <== */
case NFEventCheckPoint :
fprintf(fp,
"exit called @ FastLoad checkpoint : %lu records loaded.\n",
P->Vals.CheckPoint.RecordCount);
break;
/* DR141961 ==> */
case NFEventCheckPoint64 :
fprintf(fp,
"exit called @ FastLoad checkpoint : %s records loaded.\n",
P->Vals.CheckPoint64.RecordCount);
break;
/* DR141961 <== */
case NFEventPhaseIEnd :
fprintf(fp,
"exit called @ FastLoad phase I (end).\n");
fprintf(fp,
"
Records read:
%lu\n",
Teradata FastLoad Reference
213
Appendix C: INMOD and Notify Exit Routine Examples
All Platforms
P->Vals.PhaseIEnd.RecsRead);
fprintf(fp,
"
Records skipped: %lu\n",
P->Vals.PhaseIEnd.RecsSkipped);
fprintf(fp,
"
Records rejected: %lu\n",
P->Vals.PhaseIEnd.RecsRejected);
fprintf(fp,
"
Records sent:
%lu\n",
P->Vals.PhaseIEnd.RecsSent);
break;
/* DR141961 ==> */
case NFEventPhaseIEnd64 :
fprintf(fp,
"exit called @ FastLoad phase I (end).\n");
fprintf(fp,
"
Records read:
%s\n",
P->Vals.PhaseIEnd64.RecsRead);
fprintf(fp,
"
Records skipped: %s\n",
P->Vals.PhaseIEnd64.RecsSkipped);
fprintf(fp,
"
Records rejected: %s\n",
P->Vals.PhaseIEnd64.RecsRejected);
fprintf(fp,
"
Records sent:
%s\n",
P->Vals.PhaseIEnd64.RecsSent);
break;
/* DR141961 <== */
case NFEventPhaseIIBegin :
fprintf(fp,
"exit called @ FastLoad phase II (start).\n");
break;
case NFEventPhaseIIEnd :
fprintf(fp,
"exit called @ FastLoad phase II (end): %lu records loaded.\n",
P->Vals.PhaseIIEnd.Inserts);
break;
/* DR141961 ==> */
case NFEventPhaseIIEnd64 :
fprintf(fp,
"exit called @ FastLoad phase II (end): %s records loaded.\n",
P->Vals.PhaseIIEnd64.Inserts);
break;
/* DR141961 <== */
case NFEventDropErrTableI :
fprintf(fp,
"exit called @ FastLoad ET 1 Drop : %lu records in table.\n",
P->Vals.DropErrTableI.Rows);
break;
/* DR141961 ==> */
case NFEventDropErrTableI64 :
fprintf(fp,
214
Teradata FastLoad Reference
Appendix C: INMOD and Notify Exit Routine Examples
All Platforms
"exit called @ FastLoad ET 1 Drop : %s records in table.\n",
P->Vals.DropErrTableI64.Rows);
break;
/* DR141961 <== */
case NFEventDropErrTableII :
fprintf(fp,
"exit called @ FastLoad ET 2 Drop : %lu records in table.\n",
P->Vals.DropErrTableII.Rows);
break;
/* DR141961 ==> */
case NFEventDropErrTableII64 :
fprintf(fp,
"exit called @ FastLoad ET 2 Drop : %s records in table.\n",
P->Vals.DropErrTableII64.Rows);
break;
/* DR141961 <== */
case NFEventDBSRestart :
fprintf(fp,
"exit called @ FastLoad detects DBS restart.\n");
break;
case NFEventCLIError :
fprintf(fp,
"exit called @ FastLoad detects CLI error: %d.\n",
P->Vals.CLIError.ErrorCode);
break;
case NFEventDBSError :
fprintf(fp,
"exit called @ FastLoad detects DBS error: %d.\n",
P->Vals.DBSError.ErrorCode);
break;
case NFEventExit :
fprintf(fp,
"exit called @ FastLoad exiting. Return code: %d.\n",
P->Vals.Exit.ReturnCode);
fclose(fp);
break;
}
return(0);
}
/******************************************************************************
*
* End of FlNfyExt.c
*
******************************************************************************/
Teradata FastLoad Reference
215
Appendix C: INMOD and Notify Exit Routine Examples
All Platforms
216
Teradata FastLoad Reference
APPENDIX D
Compile, Link, and Execute INMOD
and Notify Exit Routines
This appendix provides examples of compiling, linking, and executing INMOD and notify
exit routines written in the supported programming languages for the following client system
platforms.
•
z/OS
•
IBM C or C++ INMODs
•
UNIX OS
•
Windows
Listings are provided of sample INMOD routines and notify exit routines written in:
•
Assembler
•
COBOL
•
C or C++
•
IBM C
•
PL/I
Mainframe-attached z/OS client systems support INMOD and notify exit routines written in
any of the languages listed. Network-attached UNIX and Windows client systems support
routines written in C.
z/OS
Assembler
INMOD routines written in Assembler do not need to be link-edited with other load modules.
To create and use an Assembler INMOD routine on z/OS
1
Prepare the INMOD routine source file.
2
Compile the INMOD program.
3
Invoke the Teradata FastLoad utility to execute the INMOD routine.
Teradata FastLoad Reference
217
Appendix D: Compile, Link, and Execute INMOD and Notify Exit Routines
z/OS
Example
The INMOD routine in the following example reads a record from the input data source and
adds a four--byte integer field to the front of the record. The new field contains a sequence
record that ranges from one to the total number of input records.
//JLHFAST JOB 1,’FASTLOAD/INMOD’,MSGCLASS=A,CLASS=B,NOTIFY=JLH //
******************************************************************
//*
Compile and link-edit the INMOD
*
//****************************************************************
//ASMCOMPL EXEC ASMFCL
//****************************************************************
//*
The INMOD starts here
*
//****************************************************************
//ASM.SYSIN DD *
<Assembler source goes here>
/*
//LKED.SYSLMOD DD DSN=JLH.INMOD.LOAD,DISP=SHR
//LKED.SYSIN
DD *
NAME ASMINMOD(R)
/*
//****************************************************************
//*
Execute BTEQ to create a Teradata DBS table
*
//*
*
//* The BTEQ statement .run ddname=logon allows the user to
*
//* place sensitive logon information in a secure data set (in
*
//* this case, the ddname is logon). Logging on from a data
*
//* set prevents this sensitive information from appearing in
*
//* the SYSIN file.
*
//****************************************************************
/*
//BTEQ EXEC TDSBTEQ
//LOGON DD DSN=JLH.CNTL(JLHLOGON),DISP=SHR
//SYSIN DD DATA,DLM=##
.run ddname=logon
drop table asm_example;
drop table asm_error1;
drop table asm_error2;
create table asm_example (f1 INTEGER, f2 CHAR(80))
primary index(f1);
.quit
##
//*
//******************************************************************
//*
Execute FastLoad
*
//******************************************************************
//FAST
EXEC TDSFAST
//FASTLOAD.STEPLIB DD
//
DD DSN=JLH.INMOD.LOAD,DISP=SHR
//FASTLOAD.SYSIN
DD DSN=JLH.CNTL(JLHLOGON),DISP=SHR
//
DD DATA,DLM=$$
BEGIN LOADING asm_example ERRORFILES asm_error1,asm_error2;
DEFINE T1 (integer), T2 (CHAR(80)) INMOD=ASMINMOD;
INSERT asm_example (:t1,:t2);
END LOADING;
LOGOFF;
$$
218
Teradata FastLoad Reference
Appendix D: Compile, Link, and Execute INMOD and Notify Exit Routines
z/OS
//FASTLOAD.INDATA DDDSN=JLH.ASMXMPL.DATA,DISP=SHR
//****************************************************************
//*
Using BTEQ, select the rows loaded by FastLoad
*
//****************************************************************
//BTEQ EXEC TDSBTEQ
//LOGON DD DSN=JLH.CNTL(JLHLOGON),DISP=SHR
//SYSIN DD DATA,DLM=##
.runddname logon
select * from asm_example order by 1;
.quit
##
COBOL
INMOD routines written in COBOL on z/OS must:
•
Contain the entry point name BLKEXIT
•
Be link-edited with the TERCOBOL load module.
•
Be stored as an z/OS load library file
To create and use a COBOL INMOD routine on z/OS
1
Prepare the INMOD routine source file.
2
Compile the INMOD routine.
3
Link-edit the INMOD program with the specified load module and store the results as an
z/OS load library file.
4
Invoke the Teradata FastLoad utility to execute the INMOD routine.
Example
The INMOD in the following example reads five 80-byte records from the input data source
and returns a single, 400-byte record to Teradata FastLoad. BTEQ1 creates a table on the
Teradata Database and BTEQ2 selects rows from the table to check for properly loaded data.
//JLHFAST JOB 1,’FASTLOAD/INMOD’,MSGCLASS=A,CLASS=B,NOTIFY=JLH
//****************************************************************
//*
Compile and link-edit the INMOD
*
//****************************************************************
//COBCOMPL EXEC COBUCL
//****************************************************************
//*
The INMOD starts here
*
//****************************************************************
//COB.SYSIN DD *
<COBOL source goes here>
//****************************************************************
//* Link-edit the INMOD with the Teradata-supplied module
*
//* (TERCOBOL)
*
//****************************************************************
/*
//LKED.SYSLIB DD DSN=SYS1.COBLIB,DISP=SHR
//
DD DSN=TERADATA.APPLOAD,DISP=SHR
Teradata FastLoad Reference
219
Appendix D: Compile, Link, and Execute INMOD and Notify Exit Routines
z/OS
//LKED.SYSLMOD DD DSN=JLH.INMOD.LOAD,DISP=SHR
//LKED.SYSIN
DD *
INCLUDE SYSLIB(TERCOBOL)
ENTRY TERCOBOL
NAME COBINMOD(R)
/*
//****************************************************************
//*
Execute BTEQ to create a Teradata DBS table
*
//*
*
//* The BTEQ statement .run ddname=logon allows the user to
*
//* place sensitive logon information in a secure data set (in
*
//* this case, the ddname is logon). Logging on from a data
*
//* set prevents this sensitive information from appearing in
*
//* the SYSIN file.
*
//****************************************************************
//BTEQ1 EXEC TDSBTEQ
//LOGON DD DSN=JLH.CNTL(JLHLOGON),DISP=SHR
//SYSIN DD DATA,DLM=##
.run ddname=logon
drop table cobol_example;
drop table example_error1;
drop table example_error2;
create table cobol_example (f1 char(10), f2 varchar(390))
primary index(f1);
.quit
##
//*
//FAST
EXEC TDSFAST
//FASTLOAD.STEPLIB DD
//
DD DSN=JLH.INMOD.LOAD,DISP=SHR
//FASTLOAD.SYSIN
DD DSN=JLH.CNTL(JLHLOGON),DISP=SHR
//
DD DATA,DLM=$$
BEGIN LOADING cobol_example,
ERRORFILES cobol_error1,cobol_error2;
DEFINE T1 (CHAR(10)) ,T2 (CHAR(390)) INMOD=COBINMOD;
INSERT cobol_example (:t1,:t2);
END LOADING;
LOGOFF;
$$
//FASTLOAD.INDATA
DD DSN=JLH.COBXMPL.DATA,DISP=SHR
//*
//****************************************************************
//*
Using BTEQ, select the rows loaded by FastLoad
*
//****************************************************************
//*
//BTEQ2
EXEC TDSBTEQ
//LOGON
DD DSN=JLH.CNTL(JLHLOGON),DISP=SHR
//SYSIN
DD DATA,DLM=##
.run ddname=logon
select * from cobol_example order by 1;
.quit
##
IBM C
INMOD and notify exit routines written in IBM C must:
•
220
Contain the entry point name _dynamn
Teradata FastLoad Reference
Appendix D: Compile, Link, and Execute INMOD and Notify Exit Routines
z/OS
•
Be stored as an z/OS load library file
To create and use an IBM C INMOD or notify exit routine on z/OS
1
Prepare the INMOD routine source file.
2
Compile the INMOD routine.
3
Link-edit the INMOD program and store the results as an z/OS load library file.
4
Invoke the Teradata FastLoad utility to execute the INMOD routine.
Example
The INMOD routine in the following example reads the data from the input source and
presents it, as read, to the Teradata FastLoad utility. BTEQ1 creates a table on the Teradata
Database and BTEQ2 selects rows from the table to check for properly loaded data.
This basic program can be modified to select records that meet a specified criteria, convert
certain fields, or perform other preprocessing functions.
//*
Compile and link-edit the INMOD
//******************************************************************
//IBMCOMPL EXEC LC370CL,ENTRY=DYNNR,PARM.C='DYNAMNDEF,OPTIMIZE'
//C.SYSLIB DD
//
DD DISP=SHR,DSN=<Your macro library>
//C.SYSIN
DD
*
//******************************************************************
//* Link-edit the INMOD
*
//******************************************************************
//LKED.SYSLMOD DD DISP=SHR,DSN=<Your load library>
//LKED.SYSIN DD *
NAME MYINMOD(R)
//****************************************************************
//*
Execute BTEQ to create a Teradata DBS table
*
//*
*
//* The BTEQ statement .run ddname=logon allows the user to
*
//* place sensitive logon information in a secure data set (in
*
//* this case, the ddname is logon). Logging on from a data
*
//* set prevents this sensitive information from appearing in
*
//*the SYSIN file.
*
//****************************************************************
//BTEQ1 EXEC TDSBTEQ
//LOGON DD DSN=JLH.CNTL(JLHLOGON),DISP=SHR
//SYSIN DD DATA,DLM=##
.run ddname=logon
drop table stuff;
drop table stuff_error1;
drop table stuff_error2;
create table stuff (t1 char(40), t2 char(40))
primary index(t1);
.quit
##
//*
Teradata FastLoad Reference
221
Appendix D: Compile, Link, and Execute INMOD and Notify Exit Routines
z/OS
//*
//FAST EXEC TDSFAST
//FASTLOAD.STEPLIB DD
//
DD
//
DD DISP=SHR,DSN=<your load library>
//FASTLOAD.SYSIN
DD DATA,DLM=$$
LOGON <Logon userid and password>
BEGIN LOADING stuff ERRORFILES stuff_error1,stuff_error2;
DEFINE t1 (char(40)),
t2 (char(40))
INMOD=MYINMOD;
INSERT INTO stuff (:t1,:t2);
END LOADING;
logoff;
$$
//FASTLOAD.EXPORT DD DSN=JLH.STUFF.DATA,DISP=SHR
//*
//****************************************************************
//*
Using BTEQ, select the rows loaded by FastLoad
*
//****************************************************************
//BTEQ2
EXEC TDSBTEQ
//LOGON
DD DSN=JLH.CNTL(JLHLOGON),DISP=SHR
//SYSIN DD DATA,DLM=##
.run ddname=logon
select * from stuff order by 1;
.quit
PL/I
INMOD routines written in PL/I must:
•
Contain the entry point name DYNAMN
•
Be link-edited with the PLIA load module
•
Be stored as an z/OS load library file
•
Include ‘OPTIONS(MAIN)’
To create and use a PL/I INMOD routine on z/OS:
1
Prepare the INMOD routine source file.
2
Compile the INMOD routine.
3
Link-edit the INMOD program with the specified load module and store the results as an
z/OS load library file.
4
Invoke the Teradata FastLoad utility to execute the INMOD routine.
Example
The INMOD routine in the following example reads the data from the input source and
presents it, as read, to the Teradata FastLoad utility. BTEQ1 creates a table on the Teradata
Database and BTEQ2 selects rows from the table to check for properly loaded data.
222
Teradata FastLoad Reference
Appendix D: Compile, Link, and Execute INMOD and Notify Exit Routines
z/OS
This basic program can be modified to select records that meet a specified criteria, convert
certain fields, or perform other preprocessing functions.
//IEL1CL
EXEC IEL1CL,MEM=MYINMOD
//PLI.SYSIN
DD DSN=JLH.SOURCE(&MEM),DISP=SHR
//PLI.SYSPRINT DD SYSOUT=*
//LKED.SYSPRINT DD SYSOUT=*
//LKED.SYSLMOD DD DSN=JLH.INMOD.LOAD(&MEM),DISP=SHR
//*
//LINK EXEC PGM=IEWL,PARM=(LIST,LET,MAP,NORENT,NOREUS)
//SYSPRINT DD SYSOUT=*
//SYSLOUT DD SYSOUT=*
//SYSUT1 DD UNIT=VIO,SPACE=(CYL,(1,1))
//SYSLIB DD DSN=TERADATA.APPLOAD,DISP=SHR
//
DD DSN=SYS1.SCEELKED,DISP=SHR
//
DD DSN=JLH.INMOD.LOAD,DISP=SHR
//OBJLIB DD DSN=JLH.UTILS.OBJLIB,DISP=SHR
//SYSLMOD DD DSN=JLH.INMOD.LOAD,DISP=SHR
//SYSLIN DD *
INCLUDE SYSLIB(MYINMOD)
INCLUDE OBJLIB(PLIA)
ENTRY DYNAMN
NAME MYINMOD(R)
//****************************************************************
//*
Execute BTEQ to create a Teradata DBS table
*
//*
*
//* The BTEQ statement .run ddname=logon allows the user to
*
//* place sensitive logon information in a secure data set (in
*
//* this case, the ddname is logon). Logging on from a data
*
//* set prevents this sensitive information from appearing in
*
//* the SYSIN file.
*
//****************************************************************
//BTEQ1 EXEC TDSBTEQ
//LOGON DD DSN=JLH.CNTL(JLHLOGON),DISP=SHR
//SYSIN DD DATA,DLM=##
.run ddname=logon
drop table stuff;
drop table stuff_error1;
drop table stuff_error2;
create table stuff (t1 char(40), t2 char(40))
primary index(t1);
.quit
##
//*
//*
//FAST
EXEC TDSCFAST
//FASTLOAD.STEPLIBDD
//
DD DSN=JLH.INMOD.LOAD,DISP=SHR
//FASTLOAD.SYSIN
DD DSN=JLH.CNTL(JLHLOGON),DISP=SHR
//
DD DATA,DLM=$$
BEGIN LOADING stuff ERRORFILES stuff_error1,stuff_error2;
DEFINE t1 (char(40)),
t2 (char(40))
INMOD=MYINMOD;
INSERT INTO stuff (:t1,:t2);
END LOADING;
logoff;
Teradata FastLoad Reference
223
Appendix D: Compile, Link, and Execute INMOD and Notify Exit Routines
IBM C or C++ INMODs
$$
//FASTLOAD.EXPORT DD DSN=JLH.STUFF.DATA,DISP=SHR
//****************************************************************
//*
Using BTEQ, select the rows loaded by FastLoad
*
//****************************************************************
//BTEQ2
EXEC TDSBTEQ
//LOGON
DD DSN=JLH.CNTL(JLHLOGON),DISP=SHR
//SYSIN DD DATA,DLM=##
.run ddname=logon
select * from stuff order by 1;
.quit
IBM C or C++ INMODs
Inmods can be written using the various flavors of IBM C or C++ (for example, C/370, AD/
Cycle, OS/390 C/C++, and so on). Teradata FastLoad provides source code for an assembler
language stub that invokes the appropriate CEEPIPI calls to support pre-initialization,
repeatable invocation, and termination.
The procedure follows:
1
Modify the supplied sample source module called LIBINIT3 such that the name of the
load module representing the actual INMOD is specified as the first argument of the
CEEXPITY macro, as follows:
CEEXPITY CINMODCL,0
In the above example, the name of the load module representing the actual INMOD is
CINMODCL.
2
Assemble the supplied sample source module called LIBINIT3. Use the high-level
assembler (batch or interactive) with default attributes for this purpose.
3
Link-edit the object code derived from Step 2 into an executable load module. The name
of this load module must be different from the name of the load module representing the
actual INMOD. Use the linkage editor or binder (batch or interactive) with default
attributes for this purpose.
4
Within the utility script, substitute the name of the load module representing the interface
(LIBINIT3) where the name of the load module representing the actual INMOD would be
specified.
The flow of control is as follows:
utility --> interface --> inmod
For example:
FASTLOAD --> LIBINIT3 --> CINMODCL
224
Teradata FastLoad Reference
Appendix D: Compile, Link, and Execute INMOD and Notify Exit Routines
UNIX OS
UNIX OS
SPARC Systems Running Oracle Solaris
Use the following syntax to compile source files into a shared object module for INMOD or
notify exit routines on a SPARC client system running Solaris:
cc -G
sourcefile
-KPIC
-o shared-object-name
2409A051
where
Syntax Element
Description
cc
Call to the program that invokes the native UNIX C compiler
-G
Linker option that generates a shared object file
-KPIC
Compiler option that generates Position Independent Code (PIC) for all user
exit routines
-o
Switch to the linker
shared-object-name
Name of the shared object file
This is the name specified as the:
• INMOD= name parameter in the DEFINE command of the Teradata
FastLoad job script
• EXIT name parameter of the NOTIFY command of the Teradata FastLoad
job script
The shared-object-name can be any valid UNIX file name.
Note: When creating a shared object module for an INMOD routine, if the
INMOD uses functions from an external library, then that library must be
statically linked with the INMOD routine so that the Teradata FastLoad
utility can resolve the external references.
sourcefile
UNIX file name(s) of the source file(s) for the INMOD or notify exit routine
Opteron Systems Running Oracle Solaris
Use the following syntax to compile source files into a shared object module for INMOD or
notify exit routines on an Opteron client system running Solaris:
cc -dy
-G
sourcefile.c
-o shared-object-name
2409A055
where
Teradata FastLoad Reference
225
Appendix D: Compile, Link, and Execute INMOD and Notify Exit Routines
UNIX OS
Syntax Element
Description
cc
Call to the program that invokes the native UNIX C compiler
-dy
Specifies to use dynamic linking
-G
Specifies to create a shared object
sourcefile
Is a C source module for the INMOD
-o
Specifies the output file name
shared-object-name
Specifies the resulting shared object module
This is the name specified as:
• The INMOD modulename parameter of the DEFINE command of
the Teradata FastLoad job script
• The EXIT name parameter for the NOTIFY command of the
Teradata FastLoad job script
The shared-object-name can be any valid UNIX file name
HP-UX PA RISC
Use the following syntax to compile and link source files into a shared object module for
INMOD notify exit routines on HP-UX PA RISC client systems:
Compile Syntax
cc
-Aa
-D_HPUX_SOURCE
+z
+u1
-c
sourcefile.c
%
Link Syntax
ld
-b
objectfile.o
-o shared-object-name
2411A002
where
226
Syntax Element
Description
-Aa
Compiler option which enables compiler to conform to the ANSI standard
-b
Linker option that generates a shared object file
-c
Compile-only option (does not link)
cc
Call to the program that invokes the native UNIX C compiler
Teradata FastLoad Reference
Appendix D: Compile, Link, and Execute INMOD and Notify Exit Routines
UNIX OS
Syntax Element
Description
-D_HPUX_SOURCE
Symbol that enables the compiler to access macros and typedefs that are not
defined by the ANSI Standard but are provided by the HPUX Operating
System
ld
Call to the program that invokes the native UNIX linker
objectfile
File that the compiler generates and linker uses to generate
shared-object-name
-o
Switch to the linker
shared-object-name
Name of the shared object file
This is the name specified as the:
• INMOD modulename parameter of the DEFINE command
• EXIT name parameter for the NOTIFY command of the Teradata
FastLoad job script
The shared-object-name can be any valid UNIX file name.
Note: When creating a shared object module for an INMOD routine, if the
INMOD uses functions from an external library, then that library must be
statically linked with the INMOD routine so that the Teradata FastLoad
utility can resolve the external references.name.
+z
Compiler option that generates Position Independent Code (PIC) for all
user exit routines
sourcefile
UNIX file name(s) of the source file(s) for the INMOD or notify exit
routine
+u1
Compiler option that allows pointers to access non-natively aligned data
HP-UX Itanium
Use the following syntax examples to compile and link a C INMOD on an HP-UX
Itanium-based client.
Compile Syntax
cc
+u1
-D_REENTRANT
+DD64
-c
inmod.c
2409A057
where
Syntax Element
Description
cc
Invokes the native UNIX C compiler
+u1
Is a compiler option that allows pointers to access
non-natively aligned data
Teradata FastLoad Reference
227
Appendix D: Compile, Link, and Execute INMOD and Notify Exit Routines
UNIX OS
Syntax Element
Description
-D_REENTRANT
Ensures that all the Pthread definitions are visible at compile
time
+DD64
Generates 64-bit object code for PA2.0 architecture
-c
Compiles one or more source files but does not enter the
linking phase
inmod.c
A C source module for the INMOD
Link Syntax
ld
-n
-b
inmod.o
-lc
inmod.so
-o
2409A056
where
Syntax Element
Description
ld
Invokes the UNIX linker editor
-n
Generates an executable with file type SHARE_MAGIC
This option is ignored in 64-bit mode.
-b
Is a linker option specified to generate a shared object file
inmod.o
Is an object module derived from the compile step
-lc
Search a library libc.a, libc.so, or libc.sh
-o
Specifies the output filename; default is a.out
inmod.so
Specifies the resulting shared object module
This is the user-specified name in the IMPORT command.
Note: Object modules can be linked into shared objects or
shared libraries (for example, .so or .sl extension respectively)
on HP-UX Itanium.
Linux
Use the following syntax to compile and link source files into a shared object module for
INMOD, OUTMOD, or notify exit routines on Linux 32-bit client systems. On Linux 64-bit
client systems compile in 32-bit mode.
Note: Be sure to compile the INMOD and notify exit routines in 32-bit mode so they are
compatible with Teradata FastLoad even if it is for a 64-bit Linux machine.
Compile Syntax
gcc
-I/usr/include
-shared
-fPIC
-m32
228
sourcefile.c
-o shared-object-name
2409B023
Teradata FastLoad Reference
Appendix D: Compile, Link, and Execute INMOD and Notify Exit Routines
UNIX OS
where:
Syntax Element
Description
gcc
Call to the program that invokes the native C compiler
-shared
Flag that produces a shared object that can then be linked with other
objects to form an executable
-m32
Generates code for a 32-bit environment.
-fPIC
Compiler option that generates Position Independent Code (PIC) for
all user exit routines
-o
Output file name
inmod.c
An INMOD source file name
inmod.so
An INMOD shared object name
z/Linux
z/Linux
To compile and link source files into a shared object module for INMOD and notify exit
routines on z/Linux client systems, use the following syntax:
JFF,XVULQFOXGHPVKDUHGI3,&VRXUFHILOHFRVKDUHGREMHFWQDPH
$
where
Syntax Element
Description
gcc
Call to the program that invokes the native C compiler
-m31
Generates code for a 32-bit environment.
-shared
Flag that produces a shared object that can then be linked with other objects
to form an executable
-fPIC
Compiler option that generates Position Independent Code for all user exit
routines
-o
Output file name
sourcefile
UNIX file name(s) of the source file(s) for the INMOD or notify exit routine
shared-object-name
Name of the shared object file
This is the name specified as:
• The INMOD modulename parameter of the DEFINE command of the
Teradata FastLoad job script.
• The EXIT name parameter for the NOTIFY command of the Teradata
FastLoad job script.
Teradata FastLoad Reference
229
Appendix D: Compile, Link, and Execute INMOD and Notify Exit Routines
Windows
Windows
The Teradata FastLoad INMOD routine is implemented as a dynamic load library (.dll) in C.
A make file blkexit.mak is included to allow this DLL to be modified and rebuilt. Enter this
command:
nmake -f blkexit.mak
When the DLL, blkexit.dll, is rebuilt, put the DLL in the same directory as fastload.exe.
230
Teradata FastLoad Reference
APPENDIX E
User-Defined-Types
and User-Defined-Methods
This appendix provides information on User-Defined-types (UDFs) and
User-Defined-Methods (UDMs):
•
User-Defined-Types and User-Defined-Methods
•
User-Defined-Methods (UDMs)
•
Creating UDTs with FastLoad
•
Inserting and Retrieving UDTs with Client Products
•
External Types
•
Inserting UDTs with FastLoad
•
Retrieving UDTs with FastLoad
•
Retrieving UDT Metadata with FastLoad
User-Defined -Types and User-Defined -Methods
This section provides a brief overview of how Teradata Database client products support
user-defined custom data types known as User-Defined Types (UDTs), and user-defined
custom functions known as User-Defined Methods (UDMs).
•
User-Defined Types (UDTs)
•
User-Defined Methods (UDMs)
For more in depth information on using UDTs and UDMs, see Introduction to
Teradata (B035-1091), SQL External Routine Programming (B035-1147) and SQL
Fundamentals (B035-1141).
User-Defined-Types (UDTs)
UDTs can be created to provide representations of real world entities within the Teradata
Database. Choosing a set of UDTs which closely matches the entities encountered in a given
business can yield a system which is easier to understand and hence easier to maintain.
Support for UDTs and UDMs integrates the power of object-oriented technology directly into
the Teradata Database.
Teradata FastLoad Reference
231
Appendix E: User-Defined-Types and User-Defined-Methods
User-Defined-Types and User-Defined-Methods
User-Defined-Methods (UDMs)
Teradata Database developer-created custom functions, which are explicitly connected to
UDTs are known as User-Defined-Methods (UDMs). All UDMs must reside on server.
UDMs can be used to create an interface to the UDT that is independent of the UDT's internal
representation. This makes it possible to later enhance a given UDT even in cases where the
internal representation of the UDT must be changed to support the enhancement, without
changing all of the database applications which use the UDT.
Creating UDTs with FastLoad
Teradata FastLoad cannot create a custom UDT.
Inserting and Retrieving UDTs with Client Products
A UDT can only exist on the Teradata Database server. Each UDT has an associated “from-sql
routine” and “to-sql routine”.
•
“insert – The “to-sql routine” constructs a UDT value from a pre-defined type value. The
“to-sql routine” is automatically invoked when inserting values from a client system into a
UDT on the Teradata Database server.
•
Retrieve – The “from-sql routine” generates a pre-defined type value from a UDT. The
“from-sql routine” is automatically invoked when a UDT is retrieved from the Teradata
Database server to a client system.
External Types
The “from-sql routine” and the “to-sql routine” create a mapping between a UDT and a
pre-defined type. This pre-defined type is called the external type of a UDT. A client
application only deals with the external type; it does not deal with UDT value directly.
External Type Example
For example, if the following conditions exist:
•
UDT named FULLNAME exists
•
The external type associated with FULLNAME is VARCHAR(46)
Then, during an retrieve of FULLNAME values, the Teradata Database server converts the
values from FULLNAME values to VARCHAR(46) values by invoking the “from-sql routine”
associated with the FULLNAME UDT.
Note: The client must expect to receive the data in the same format as it receives
VARCHAR(46) values.
Similarly, when values are provided by the client for insert into a FULLNAME UDT, the client
must provide values in the same way it would provide values for a VARCHAR(46) field. The
Teradata Database server will convert the values from VARCHAR(46) to FULLNAME values
using the “to-sql routine” associated with the FULLNAME UDT.
232
Teradata FastLoad Reference
Appendix E: User-Defined-Types and User-Defined-Methods
User-Defined-Types and User-Defined-Methods
Inserting UDTs with FastLoad
Teradata FastLoad inserts values into tables containing UDT columns in the same manner as
is done for other tables, and handles the column data in its external type format.
•
Data in External Type Format – Data must be in the external type format in the input data
source identified in the DEFINE command in the Teradata FastLoad job script.
•
Name of the External Type – Specify the name of the external type for the data type of the
field in the DEFINE command.
Retrieving UDTs with FastLoad
UDTs cannot be retrieved with FastLoad
Retrieving UDT Metadata with FastLoad
UDT Metadata cannot be retrieved with FastLoad.
Teradata FastLoad Reference
233
Appendix E: User-Defined-Types and User-Defined-Methods
User-Defined-Types and User-Defined-Methods
234
Teradata FastLoad Reference
Glossary
A
ABORT: In Teradata SQL, a statement that stops a transaction in progress and backs out
changes to the database only if the conditional expression associated with the abort statement
is true.
access lock: A lock that allows selection of data from a table that may be locked for write
access. The Teradata MultiLoad utility maintains access locks against the target tables during
the Acquisition Phase.
access module: A software component that provides a standard set of I/O functions to
access data on a specific device.
account: The distinct account name portion of the system account strings, excluding the
performance group designation. Accounts can be employed wherever a user object can be
specified.
acquisition phase: Responsible for populating the primary data subtables of the work
tables. Data are received from the host, converted into internal format, and inserted into the
work tables. The work tables will be sorted at the end of the Acquisition Phase and prior to the
Application Phase.
administrator:
A special user responsible for allocating resources to a community of users.
allocation group: (AG) A set of parameters that determine the amount of resources
available to the sessions assigned to a PG referencing a specific AG. Has an assigned weight
that is compared to other AG weights. An AG can limit the total amount of Central Processing
Unit (CPU) used by sessions under its control.
ANSI: American National Standards Institute. ANSI maintains a standard for SQL. For
information about Teradata compliance with ANSI SQL, see SQL Fundamentals (B035-1141).
Application Phase: Responsible for turning rows from a work table into updates, deletes,
and inserts and applying them to a single target table.
API: Application Program Interface. An interface (calling conventions) by which an
application program accesses an operating system and other services. An API is defined at
source code level and provides a level of abstraction between the 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 may 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.
Teradata FastLoad Reference
235
Glossary
architecture: A definition and preliminary design which describes the components of a
solution and their interactions. An architecture is the blueprint by which implementers
construct a solution which meets the users’ needs.
ASCII: American Standard Code for Information Interchange, a character set used
primarily on personal computers.
B
BTEQ: Basic Teradata Query facility. A utility that allows users on a workstation to access
data on a Teradata Database, and format reports for both print and screen output.
C
capture:
The process of capturing a production data source.
change data capture: The process of capturing changes made to a production data source.
Change data capture is typically performed by reading the source DBMS log. It consolidates
units of work, ensures data is synchronized with the original source, and reduces data volume
in a data warehousing environment.
mainframe-attached: A mainframe computer that communicates with a server (for
example, a Teradata Database) through a channel driver.
character set: A grouping of alphanumeric and special characters used by computer systems
to support different user languages and applications. Various character sets have been codified
by the American National Standards Institute (ANSI).
Client:
A computer that can access the Teradata Database.
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.
COP: Communications Processor. One kind of interface processor (IFP) on the Teradata
Database. A COP contains a gateway process for communicating with workstations via a
network.
COP Interface: Workstation-resident software and hardware, and Teradata
Database-resident software and hardware, that allows workstations and the Teradata Database
to communicate over networks.
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 Dictionary: In the Teradata Database, the information automatically maintained
about all tables, views, macros, databases, and users known to the Teradata Database system,
including information about ownership, space allocation, accounting, and privilege
236
Teradata FastLoad Reference
Glossary
relationships between those objects. Data Dictionary information is updated automatically
during the processing of Teradata SQL data definition statements, and is used by the parser to
obtain information needed to process all Teradata SQL statements.
data manipulation: In Teradata SQL, the statements and facilities that change the
information content of the database. These statements include INSERT, UPDATE, and
DELETE.
Data Model: A logical map that represents the inherent properties of the data independent
of software, hardware, or machine performance considerations. The model shows data
elements grouped into records, as well as the association around those records.
data streams: Buffers in memory for temporarily holding data. A data stream is not a
physical file; instead, it is more like a pipe (in UNIX or Windows systems), or a batch pipe in
MVS.
Data Warehouse: A subject oriented, integrated, time-variant, non-volatile collection of
data in support of management’s decision making process. A repository of consistent
historical data that can be easily accessed and manipulated for decision support.
DBA:
DD:
Database Administrator
Data dictionary or data definition.
DEFINE Statement: A statement preceding the INSERT statement that describes the fields
in a record before the record is inserted in the table. This statement is similar to the SQL
USING clause.
delimiter: In Teradata SQL, a punctuation mark or other special symbol that separates one
clause in a Teradata SQL statement from another, or that separates one Teradata SQL
statement from another.
DLL: Dynamic-link library. A feature of the Windows family of operating systems that
allows executable routines to be stored separately as files with .dll extensions and to be loaded
only when needed by a program.
DML: Data manipulation language. In Teradata SQL, the statements and facilities that
manipulate or change the information content of the database. These statements include
SELECT, INSERT, UPDATE, and DELETE.
domain name: A group of computers whose host names (the unique name by which a
computer is known on a network) share a common suffix, that is the domain name.
DSN: Digital Switched Network. The completely digital version of the PSTN.
Duplicate Row Check: A logic within the Teradata Database used to check for duplicate
rows while processing each primary data row for INSERTs and UPDATEs.
DWM: Dynamic Workload Manager. The product described in this document, which
manages access to the Teradata Database.
Teradata FastLoad Reference
237
Glossary
E
EBCDIC: Extended binary coded decimal interchange code. An IBM code that uses 8 bits to
represent 256 possible characters. It is used primarily in IBM mainframes, whereas personal
computers use ASCII.
Error Tables: Tables created during the Preliminary Phase used to store errors detected
while processing a MultiLoad job. There are two error tables, ET and UV, that contains errors
found during the Acquisition Phase and Application Phase, respectively.
EOF:
End of File
EON:
Extended Object Names
execution time frame:
waiting to run.
A period of time when DWM can execute scheduled requests that are
Exit Routines: Specifies a predefined action to be performed whenever certain significant
events occur during a MultiLoad job.
F
FastExport: Teradata FastExport utility. A program that quickly transfers large amounts of
data from tables and views of the Teradata Database to a client-based application.
FastLoad: Teradata FastLoad utility. A program that loads empty tables on the Teradata
Database with data from a network-attached or mainframe-attached client.
field: The basic unit of information stored in the Teradata Database. A field is either null, or
has a single numeric or string value. See also column, database, row, table.
foreign key: The primary key of a parent data subject that is placed in a subordinate data
subject. Its value identifies the data occurrence in the parent data subject that is the parent of
the data occurrence in the subordinate data subject.
formatted records:
See Records.
function: User Defined Functions (UDFs) are extensions to Teradata SQL. Users can write
UDFs to analyze and transform data already stored in their data warehouse in ways that are
beyond the functionality of Teradata’s native functions.
G
gateway:
A device that connects networks having different protocols.
global rule: Object Access and Query Resource rules can be specified as being global, that is,
they apply to all objects, and therefore to all requests. When a rule is specified as being global,
no query objects need be (or can be) associated with the rule because all objects are implicitly
included. Care should be taken defining a global access rule, as it causes all requests to be
rejected except those from the DBC user and any bypassed objects.
238
Teradata FastLoad Reference
Glossary
globally distributed objects (GDO): A data structure that is shared by all of the virtual
processors in the Teradata Database system configuration.
I
import: This refers to the process of pulling system information into a program. To add
system information from an external source to another system. The system receiving the data
must support the internal format or structure of the data.
Import Task: A task that quickly applies large amounts of client data to one or more tables
or views on the Teradata Database. Composed of four major phases: Preliminary, Acquisition,
Application, and End. The phases are a collection of one or more transactions that are
processed in a predefined order according to the MLOAD protocol. An import task references
up to five target tables.
INMOD: Input Module, a program that administrators can develop to select, validate, and
preprocess input data.
INMOD Routine: User-written routines that Teradata MultiLoad and other load/export
utilities use to provide enhanced processing functions on input records before they are sent to
the Teradata Database. Routines can be written in C language (for network-attached
platforms), or COBOL, PL/I or Assembler (for mainframe-attached platforms). A routine can
read and preprocess records from a file, generate data records, read data from other database
systems, validate data records, and convert data record fields.
inner join: In Teradata SQL, a join operation on two or more tables, according to a join
condition, that returns the qualifying rows from each table.
instance: In object-oriented programming, refers to the relationship between an object and
its class. The object is an instance of the class. In Teradata PT, an instance is an occurrence of a
fully defined Teradata PT operator, with its source and target data flows, number of sessions,
and so on. Teradata PT can process multiple instances of operators.
interface processor (IFP): Used to manage the dialog between the Teradata Database and
the host. Its components consist of session control, client interface, the parser, the dispatcher,
and the BYNET. One type of IFP is a communications processor (COP). A COP contains a
gateway process for communicating with workstations via a network.
internet protocol (IP): Data transmission standard; the standard that controls the routing
and structure of data transmitted over the Internet.
I/O:
Input/output.
ISO:
International Standards Organization
J
JCL: Job Control Language is a language for describing jobs (units of work) to the OS/390,
z/OS, and VSE operating systems, which run on IBM's OS/390 and z800/900 large server
(mainframe) computers. These operating systems allocate their time and space resources
Teradata FastLoad Reference
239
Glossary
among the total number of jobs that have been started in the computer. Jobs in turn 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 requiring
user interaction (for example, print jobs). In addition, the operating system 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 used for industrial activities in
Japan. The standardization process is coordinated by Japanese Industrial Standards
Committee and published through Japanese Standards Association.
Job Script: A job script, or program, is a set of Teradata MultiLoad commands and Teradata
SQL statements that make changes to specified target tables and views in the Teradata
Database. These changes can include inserting new rows, updating the contents of existing
rows, and deleting existing rows.
join: A select operation that combines information from two or more tables to produce a
result.
L
LAN: Local Area Network. LANs supported by Teradata products must conform to the IEEE
802.3 standard (Ethernet LAN).
Least Used: Least used (-lu) in a command line parameter that tells Teradata QD to route
queries to the least used database.
Load operator: A Teradata PT consumer-type operator that emulates some of the functions
of the Teradata FastLoad utility in the Teradata PT infrastructure.
LOB: An acronym for large object. A large object is a database object that is large in size.
LOBs can be up to 2 gigabytes. There are two types of LOBs, CLOBs and BLOBs. CLOBs are
character-based objects, BLOBs are binary-based objects.
Locks: Teradata FastLoad automatically locks any table being loaded and frees a lock only
after an END LOADING statement is entered. Therefore, access to a table is available when
Teradata FastLoad completes.
log: A record of events. A file that records events. Many programs produce log files. Often a
log file determines what is happening when problems occur. Log files have the extension “.log”.
logical action: A named action that is defined on the Alert Policy Editor's Actions tab.
Logical actions can be assigned to events in the alert policy.
Logical Data Model: A data model that represents the normalized design of data needed to
support an information system. Data are drawn from the common data model and
normalized to support the design of a specific information system.
Actual implementation of a conceptual module in a database. It may take multiple logical data
models to implement one conceptual data model.
240
Teradata FastLoad Reference
Glossary
loner value: A value that has a frequency greater than the total number of table rows divided
by the maximum interval times 2.
M
macro: a file that is created and stored on the Teradata Database, and is executed in response
to a Teradata SQL EXECUTE statement
merge join: In Teradata SQL, the type of join that occurs when the WHERE conditional of a
SELECT statement causes the system first to sort the rows of two tables based on a join field
(specified in the statement), then traverse the result while performing a merge/match process.
Metadata: Data about data. For example, information about where the data is stored, who is
responsible for maintaining the data, and how often the data is refreshed.
methods: In object-oriented programming, methods are the programming routines by
which objects are manipulated.
NFS:
Network file system.
MIB:
Management Information Base
MOSI: Micro Operating System Interface. A library of routines that implement operating
system dependent and protocol dependent operations on the workstation.
MTDP: Micro Teradata Director Program. A library of routines that implement the session
layer on the workstation. MTDP is the interface between CLI and the Teradata Database.
MultiLoad: Teradata MultiLoad. A command-driven utility that performs fast, high-volume
maintenance functions on multiple tables and views of the Teradata Database.
Multiset Tables:
Tables that allow duplicate rows.
MVS (Multiple Virtual Storage): One of the primary operating systems for large IBM
computers.
N
name: A word supplied by the user that refers to an object, such as a column, database,
macro, table, user, or view.
nested join: In Teradata SQL, this join occurs when a field is a unique primary index for one
table of the join and an index (unique or non-unique primary or secondary index) for the
second table in the join.
Network: In the context of the Teradata Database, a LAN (see LAN).
network attached: A computer that communicates over the LAN with a server (for example,
a Teradata Database).
notify exit: A user-defined exit routine that specifies a predefined action to be performed
whenever certain significant events occur during a Teradata FastLoad job.
Teradata FastLoad Reference
241
Glossary
For example, by writing an exit in C (without using CLIv2) and using the NotifyExit attribute
in an operator definition, a routine to detect whether a Teradata FastLoad job succeeds or fails,
how many records were loaded, what the return code is for a failed job, and so on can be
provided.
null:
The absence of a value for a field.
Nullif Option: This option allows the user to null a column in a table under certain
conditions; it is only used in conjunction with DEFINE statements.
NUSI: Non-unique secondary index; an NUSI is efficient for range query access, while a
unique secondary index (USI) is efficient for accessing a single value.
O
object: In object-oriented programming, a unique instance of a data structure defined
according to the template provided by its class. Each object has its own values for the variables
belonging to its class and can respond to the messages, or methods, defined by its class.
object access rule: An Object Access filter allows defining the criteria for limiting access to
issuing objects and/or query objects. Queries that reference objects associated with the rule
(either individually or in combination) during the specified dates and times are rejected.
Global rules are not applicable for this type.
object definition: The details of the structure and instances of the objects used by a given
query. Object definitions are used to create the tables, views, and macros, triggers, join
indexes, and stored procedures in a database.
operator routine:
method.
In object-oriented programming, refers to a function that implements a
The terms operator routine and operator function may be used interchangeably.
OS/390
Operating System 390
outer join: In Teradata SQL, an extension of an inner join operation. In addition to
returning qualifying rows from tables joined according to a join condition (the inner join), an
outer join returns non-matching rows from one or both of its tables. Multiple tables are joined
two at a time.
owner: In Teradata SQL, the user who has the ability to grant or revoke all privileges on a
database to and from other users. By default, the creator of the database is the owner, but
ownership can be transferred from one user to another by the GIVE statement.
P
parameter: A variable name in a macro for which an argument value is substituted when
the macro is executed.
parser: A program executing in a PE that translates Teradata SQL statements entered by a
user into the steps that accomplish the user’s intensions.
242
Teradata FastLoad Reference
Glossary
parsing engine (PE): An instance (virtual processor) of the database management session
control, parsing, and dispatching processes and their data context (caches).
Paused MultiLoad Job: A job that was halted, before completing, during the Acquisition
Phase of the Teradata MultiLoad operation. The paused condition can be intentional, or the
result of a system failure or error condition.
peak perm:
Highest amount of permanent disk space, in bytes, used by a table.
performance groups: A performance group is a collection of parameters used to control
and prioritize resource allocation for a particular set of Teradata Database sessions within the
Priority Scheduler. Every Teradata Database session is assigned to a performance group during
the logon process. Performance groups are the primary consideration in partitioning the
working capacity of the Teradata Database. To learn more about performance groups, see
Utilities (B035-1102).
performance periods: A threshold or limit value that determines when a session is under
the control of that performance period. A performance period links PGs/Teradata Database
sessions under its control to an AG that defines a scheduling strategy. A performance period
allows AG assignments based on time-of-day or resource usage to be changed.
Physical Data Model: A data model that represents the denormalized physical
implementation of data that support an information system. The logical data model is
denormalized to a physical data model according to specific criteria that do not compromise
the logical data model but allow the database to operate efficiently in a specific operating
environment.
PL/I: Programming Language/1, a programming language supported for MultiLoad
development.
Primary server: A Teradata server in which client applications execute transactions through
use of Teradata SQL or utilities such as Teradata MultiLoad and update the tables of one or
more replication groups. The changes are captured by Teradata replication services
components and given to an Replication intermediary server and processes connected to the
Primary server.
priority definition set: A collection of data that includes the resource partition,
performance group, allocation group, performance period type, and other definitions that
control how the Priority Scheduler manages and schedules session execution.
product join: In Teradata SQL, the type of join that occurs when the WHERE conditional of
a SELECT statement causes the Teradata Database system to compare all qualifying rows from
one table to all qualifying rows from another table. Because each row of one table is compared
to each row of another table, this join can be costly in terms of system performance.
Note that product joins without an overall WHERE constraint are considered unconstrained
(Cartesian). If the tables to be joined are small, the effect of an unconstrained join on
performance may be negligible, but if they are large, there may be a severe negative effect on
system performance.
Teradata FastLoad Reference
243
Glossary
profiles: A profile is a set of parameters assigned to a user, group of users, or an account that
determines which scheduling capabilities are available and how the Teradata Query Scheduler
scheduled requests server handles their scheduled requests.
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 the alert policy.
PIC:
Position independent code
PL/I: Programming Language/1, a programming language supported for MultiLoad
development.
PP2:
Preprocessor2
PPP:
Point-to-Point Protocol
Primary Key: A set of one or more data characteristics whose value uniquely identifies each
data occurrence in a data subject. A primary key is also known as a unique identifier.
privilege: A user’s right to perform the Teradata SQL statements granted to him against a
table, database, user, macro, or view.
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.
production system: A database used in a live environment. A system that is actively used for
day to day business operations. This differs from a test or development system that is used to
create new queries or test new features before using them on the production system.
Protocol:
network.
The rules for the format, sequence and relative timing of messages exchanged on a
Q
query analysis: A feature that estimates the answer set size (number of rows) and processing
time of a SELECT type query.
query:
A Teradata SQL statement, particularly a SELECT statement.
Query Director: A Teradata client application used to balance sessions between systems
according to user provided algorithms.
query management: The primary function of DWM is to manage logons and queries. This
feature examines logon and query requests before they are dispatched for execution within the
Teradata Database, and may reject logons, and may reject or delay queries. It does this by
comparing the objects referenced in the requests to the types of DBA-defined rules.
R
Records: When using the Teradata MultiLoad utility, both formatted and unformatted
records are accepted for loading. A formatted record, in the Teradata Database world, consists
244
Teradata FastLoad Reference
Glossary
of a record created by a Teradata Database utility, such as Basic Teradata Query (BTEQ),
where the record is packaged with begin- and end-record bytes specific to the Teradata
Database. Unformatted records are any records not originating on a Teradata Database, such
as Fortran files. These files contain records that must be defined before loading onto the
Teradata Database.
Replication Group: A set of tables for which either data changes are being captured on a
primary server or applied on a subscriber server.
Replication Intermediary Server: The server and computer software process written by a
third party which interfaces to one or more Teradata servers and initiates a change data
capture or change data apply operation with the Teradata replication services components.
Replication Services Components: A set of software functions implemented in the Teradata
server thatcapture change data on the tables of a replication group and the Teradata Access
Module for Oracle GoldenGate that interact with the Oracle GoldenGate software running on
the replication intermediary server.
For detailed information on the replication services components, see Teradata Replication
Services Using Oracle GoldenGate and the SQL Data Definition Language.
request: In host software, a message sent from an application program to the Teradata
Database.
resource partition: A collection of prioritized PGs related by their users’ associations. Has
an assigned weight that determines the proportion of resources available to that partition
relative to the other partitions defined for that Teradata Database.
Restart Log Table: One of four restart tables the Teradata MultiLoad utility creates that are
required for restarting a paused Teradata MultiLoad job.
result: The information returned to the user to satisfy a request made of the Teradata
Database.
results table/file: In the Schedule Request environment, a results table or file is a database
table or a Windows file into which result data for a schedule request that is not self-contained
are stored.
results file storage: A symbolic name to a root directory where scheduled requests results
are stored. A file storage location can be mapped to a Windows root directory where results
are stored.
row: Whether null or not, that represent one entry under each column in a table. The row is
the smallest unit of information operated on by data manipulation statements.
RowID join: In Teradata SQL, this join occurs when one of the join tables has a non-unique
primary index constant, and another column of that table matches weakly with a non-unique
secondary index column of the second table.
RT:
Response Time
RTF:
Rich Text File
Teradata FastLoad Reference
245
Glossary
rule: Rules are the name given to the method used by DWM to define what requests are
prohibited from being immediately executed on the Teradata Database. That is, the rules
enforced by DWM provide the Query Management capabilities.
run file: A script that is not contained within the SYSIN file, but rather executed through
use of the .RUN BTEQ command.
S
scheduled requests: The capability to store scripts of SQL requests and execute them at a
scheduled later time.
schema: Schemas are used to identify the structure of the data. Producers have an output
schema, to define what the source data will look like in the data stream. Consumers have an
input schema, to define what will be read from the data stream. If the input and output
schemas are the same, only define the schema once.
script:
A file that contains a set of BTEQ commands and/or SQL statements.
Security token: A binary string generated by a server when a replication group is created or
altered that must be input to secure a change data capture or apply operation.
separator: A character or group of characters that separates words and special symbols in
Teradata SQL. Blanks and comments are the most common separators.
server: A computer system running the Teradata Database. Typically, a Teradata Database
server has multiple nodes, which may 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 the user logs on to the Teradata Database and ends when the
user logs off the Teradata Database. Also called a Teradata Database session.
session: In client software, a logical connection between an application program on a host
and the Teradata Database that permits the application program to send one request to and
receive one response from the Teradata Database at a time.
skew: This value is calculated based on a single Database collection interval. If the Session
Collection rate is 60, then the skew is calculated for a 60-second period.
The value is calculated using 'current' data values. For example, the Max CPU used during the
past 60 seconds relative to the Average used over that same 60 seconds:
skew = 100 * (1 – avg / max)
Source Database: The database from which data will be extracted or copied into the Data
Warehouse.
SQL: Structured Query Language. An industry-standard language for creating, updating
and, querying relational database management systems. SQL was developed by IBM in the
1970s for use in System R. It is the de facto standard as well as being an ISO and ANSI
standard. It is often embedded in general purpose programming languages.
Programming language used to communicate with the Teradata Database.
246
Teradata FastLoad Reference
Glossary
SSO: Single sign-on, an authentication option that allows users of the Teradata Database on
Windows 2000 systems to access the Teradata Database based on their authorized network
usernames and passwords. This feature simplifies the procedure requiring users to enter an
additional username and password when logging on to Teradata Database via client
applications.
statement: A request for processing by the Teradata Database that consists of a keyword
verb, optional phrases, operands and is processed as a single entity.
statistics: These are the details of the processes used to collect, analyze, and transform the
database objects used by a given query.
stored procedure: Teradata Version 2 Release 4 and later supports stored procedures. A
stored procedure is a combination of SQL statements and control and conditional handling
statements that run using a single call statement.
Subscriber server: A Teradata server in which changes captured from a primary server by an
intermediary are applied to tables that duplicate those of the primary. Replication services
components executing on the servers provide the capture and apply functions.
supervisory user: In Data Dictionary, a user who has been delegated authority by the
administrator to further allocate Teradata Database resources such as space and the ability to
create, drop, and modify users within the overall user community.
T
table: A set of one or more columns with zero or more rows that consist of fields of related
information.
Target Database:
The database in which data will be loaded or inserted.
Target table: A user table where changes are to be made by a Teradata MultiLoad task.
TCP/IP:
Transmission Control Protocol/Internet Protocol.
Teradata SQL: The Teradata Database dialect of the relational language SQL, having data
definition and data manipulation statements. A data definition statement would be a CREATE
TABLE statement and a data manipulation statement would be a data retrieval statement (a
SELECT statement).
TDP: Teradata Director Program; TDP provides a high-performance interface for messages
communicated between the client and the Teradata system.
TDPID: Teradata Director Program Identifier. The name of the Teradata Database being
monitored.
Target Level Emulation (TLE): Permits emulation of a target environment (target system)
by capturing system-level information from that environment. The captured information is
stored in the relational tables SystemFE.Opt_Cost_Table and SystemFE.Opt_RAS_Table. The
information in these tables can be used on a test system with the appropriate column and
Teradata FastLoad Reference
247
Glossary
indexes to make the Optimizer generate query plans as if it were operating in the target system
rather than the test system.
test system: A Teradata Database where Optimizer-specific information is imported 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, it is the
column name, but a title can also be explicitly declared by a TITLE phrase.
TPA:
Trusted Parallel Application.
Transport: The process of extracting data from a source, interfacing with a destination
environment, and then loading data to the destination.
transaction: A set of Teradata SQL statements that is 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. The 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.
TTU: Teradata Tools and Utilities is a robust suite of tools and utilities that enables users
and system administrators to enjoy optimal response time and system manageability with
there Teradata system. Teradata FastLoad is included in Teradata Tools and Utilities.
tuple: In a database table (relation), a set of related values one for each attribute (column).
A tuple is stored as a row in a relational database management system. It is analogous to a
record in a non relational file.
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
UDM User-Defined Methods. The database developer can create custom functions that are
explicitly connected to UDTs; these are known as UDMs. Functionalities directly applicable to
a UDT can be located within the UDMs associated with that UDT rather than being replicated
to all of the applications that use that UDT, resulting in increased maintainability.
UDT A custom data type, known as a user-defined type. By creating UDTs, a database
developer can augment the Teradata Database with data types having capabilities not offered
by Teradata predefined (built-in) data types. Use Teradata FastLoad to import values into
tables containing UDT columns in the same manner as is done for other tables. The input
records to Teradata FastLoad must have the column data for UDT columns in its external type
format.
Unicode: A fixed-width (16 bits) encoding of virtually all characters present in all languages
in the world.
248
Teradata FastLoad Reference
Glossary
unique secondary index (USI): One of two types of secondary indexes. A secondary index
may be specified at table creation or at any time during the life of the table. It may consist of
up to 16 columns. To get the benefit of the index, the query has to specify a value for all
columns in the secondary index. A USI has two purposes: It can speed up access to a row
which otherwise might require a full table scan without having to reply on the primary index,
and it can be used to enforce uniqueness of a column or set of columns.
user: In Teradata SQL, a database associated with a person who uses the Teradata Database.
The database stores the person’s private information and accesses other Teradata Databases.
UPI: Unique primary index; a UPI is required and is typically assigned to major entities in
the database.
user: A database associated with a person who uses the Teradata Database. The database
stores the person’s private information and accesses other Teradata Databases.
user groups: A group of users can be specified within DWM as either as a collection of
individual users, or as all user names which satisfy a character string pattern (such as SALE*).
The Teradata concept of roles is not used to define user groups, as it applies to privileges. User
groups can generally be employed wherever an issuing object can be specified, and any
condition applied to a group implicitly applies to all users within that group.
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.
UTF16
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 a Teradata Database. A
view, like a table, has rows and columns. However, the rows and columns of a view are not
directly stored by the Teradata Database. They are derived from the rows and columns of
tables (or other views) whenever the view is referenced.
VM (Virtual Machine):
VM/CMS
Teradata FastLoad Reference
One of the primary operating systems for large IBM computers.
Virtual Machine/Conversational Monitor System
249
Glossary
W
workgroups: Workgroups represent collections of related scheduled request work for users,
user groups, or accounts. Each workgroup is assigned a maximum number of requests that
can be executing from that workgroup simultaneously thereby ensuring that requests for all
workgroups get a fair share of their scheduled work done within the execution time frames.
workload limits rule A Workload Limits rule allows limiting the number of logon sessions
and all-AMP queries, as well as reject or delay queries when workload limits are encountered.
Which users, accounts, performance groups, or users within performance groups that are
associated with this type of rule can be defined.
Workstation:
A network-attached client.
Work Table: A table created during the Preliminary Phase used to store intermediate data
acquired from the host during an MLOAD task. These data will eventually be applied to a
target table.
Write Lock: A write lock enables a single user to modify a table. The Teradata MultiLoad
utility maintains write locks against each target table during the Application Phase, and work
tables and error tables for each task transaction.
X
XML: XML is the eXtensible Markup Language, a system created to define other markup
languages. For this reason, it can also be referred to as a metalanguage. XML is commonly
used on the Internet to create simple methods for the exchange of data among diverse clients.
Z
z/Linux: Linux operating system (RedHat or SuSE) compiled to run on IBM System z
machines.
z/OS (MVS (Multiple Virtual Storage) ) One of the primary operating systems for large
IBM computers.
250
Teradata FastLoad Reference
Index
Symbols
C
.* default VALUES clause 125
* (asterisk character) 151
c specification 155, 156
character set
ASCII 55
AXSMOD 57
determining 162
EBCDIC 55
kanji 55
programming considerations 55
supported 19
Unicode 57
UTF-16 57
UTF-8 57
CHARACTERS data type specification 105
character-to-date data conversions 20
character-to-numeric data conversions 20
CHARSET
configuration file specification 53
CHECKPOINT keyword 92, 93
checkpoints
description 20
internal 117
trade-offs 58
with access modules 58
CLEAR command
defined 25
syntax 95
using with HELP TABLE commands 124
cname specification
INSERT statement 125
COBOL program examples
compiling, linking and executing
on z/OS systems 219
INMOD routine 194
commands
defined 24
functions 24
OS command specification 142
syntax, see individual commands
comments 58
compiling and linking routines
HP-UX 226
Linux 228
Opteron 225
Solaris 229
UNIX OS 225, 226, 227, 229
Numerics
3944 error message 59
A
abort, defined 235
access privileges, required 126
accounts, defined 235
acctid specification 134
administrator, defined 235
ANSI/SQL DateTime data types 57
DEFINE command 108
INSERT statement 126
specifications 57, 108
ANSIDATE keyword 96
API, defined 235
ASCII
character set code 55
specification 161
Assembler program examples
compiling, linking and executing
on z/OS systems 217
INMOD routine 191
AXSMOD
character set 57
checkpoint support 58
command
defined 25
syntax 89
B
BEGIN LOADING command
defined 25
example 94
syntax 91
BINARY specification 155
BLKEXIT.C INMOD routine, calling 71
BUFSIZE, configuration file specification 53
bypass-label (BPL) tapes, not supported 24
BYTE data type specification 104
BYTEINT data type specification 105
Teradata FastLoad Reference
251
Index
z/Linux 229
concatenated data sets, not supported 24
concurrent load utility tasks, restrictions and limitations 59
configuration file 53
contents 53
file name and location 53
optional specification 33
overriding internal utility defaults 52
processing by the FastLoad utility 54
specifications 52
using 52
configuration parameters
overridden by runtime parameters 53
BUFSIZE 36
CHARSET 37
ERRORLOG 38
MAXSESS 38
MINSESS 38
SLEEP 38
TENACITY 39
VERBOSE 39
overridden by utility commands 53
SESSIONS 151
SET SESSION CHARSET 161
SLEEP 167
TENACITY 170
CREATE TABLE statement
defined 26
D
data
formats 157
handling, defined 24
length field, input record 21
transfer capabilities 19
type specifications 99
data conversions
character-to-date 20
character-to-numeric 20
date-to-character 20
example 59
integer-to-decimal 20
limiting factors 59
numeric-to-numeric 20
overview 20
data dictionary, defined 236
data encryption
runtime option specification 45
data manipulation, defined 237
data types, ANSI/SQL DateTime 57
DATABASE statement, defined 26
DATAENCRYPTION
BEGIN LOADING command 92
252
configuration file setting 53
datatype specification 98
DATEFORM command
defined 25
syntax 96
DateTime specifications 57
table 108
date-to-character data conversions 20
dbname specification
BEGIN LOADING command 91
HELP TABLE command 123
DDNAME=filename data source specification 97, 99
decimal
format 59
zoned 20
DECIMAL data type specification 105
DEFINE command
defined 25
syntax 97
using with HELP TABLE command 123
using with INSERT statements 126
DELETE statement, defined 26
delimiters, defined 237
DISPLAY_ERRORS keyword specification 156
DROP TABLE statement, defined 26
duplicate rows
not inserted by the FastLoad utility 18, 60
DWM
defined 237
E
EBCDIC character set codes 55
END LOADING command
defined 25
syntax 117
end-loading phase 117
end-of-record field, input record 22
endrecordnumber specification 147
ERRLIMIT command
defined 25
syntax 119
error tables
correcting errors recorded in 82
dropped if empty 117
format of 80
multiple databases 91
reusing table names 93
ERRORFILES keyword 91
errorname1 specification 92, 93
errors
correcting 80
in the first error table 80
in the second error table 82
Teradata FastLoad Reference
Index
data conversion 59
error recording 79
error table format 79, 93
handling 78
NOTIFY implications 140
insertion errors
limiting 119
restarting after 119
specifying the ERRLIMIT value 60
errortname1 specification 92
errortname2 specification 93
execution time frame, defined 238
EXIT name specification 137, 138
exit routines, creating for NOTIFY 140
F
FastLoad job scripts
programming considerations 52
checkpoint trade-offs 58
data conversion factors 59
defined triggers limitation 63
nonunique index sorts 60
range constraints 60
record mode load anomaly 61
referential integrity 63
session limits 62
space requirements and limitations 62
writing 72
FastLoad utility
character set specifications 55
data conversion capabilities 20
data transfer capabilities 19
file requirements 33
file types supported 20
formatted data 21
input data formats 20
input record fields 21
invoking 33
in batch mode 34
in interactive mode 34
operating features and capabilities 18
operating modes 19
overview 17
programming considerations
character set specifications 55
comments 58
restarting 147
NOTIFY implications 140
starting 135
terminating 47
abort 48
normal 48
unformatted data 22
Teradata FastLoad Reference
unsupported data sets and tapes 24
variable-length text 24
field
defined 238
values, inserting 126
fieldname specification
DEFINE command 97
INSERT statement 125
file types supported 20
FILE=filename data source specification 97, 99
fileid specifications
RUN command 149
usage rules for z/OS 149
FLOADCFG, configuration file name 53
floadcfg.dat, configuration file name 53
foreign key references 62
formatted data 21
FORMATTED keyword specification 155
G
global rule, defined 238
GRAPHIC data type specifications 106
DEFINE command 103
H
HELP command
defined 24
syntax 121
HELP TABLE command
defined 24
syntax 123
HIGH specification 137
hours specification 170
I
IBM C program examples
compiling, linking and executing
on z/OS systems 220
INMOD routine 197
indicator
bit positions, illustration 94
bytes field, input record 21
INDICATORS keyword 92, 94
init-string specification 89
INMOD routines and programs
Assembler program listing 191
BLKEXIT.C, calling 71
COBOL program listing 194
compiling, linking and executing
Assembler on z/OS 217
C on Windows 230
COBOL on z/OS 219
253
Index
IBM C on z/OS 220
PL/I on z/OS 222
creating your own 72
definition 64
entry points 65
examples 70
FastLoad-to-INMOD interface 66
IBM C program listing 197
INMOD type specification 44
INMOD-to-FastLoad interface 67
PL/I program listing 196
platforms and programming languages 64
programming structure 65
using 64
INMOD=name specification 99
INMODRETURN
configuration file specification 53
inner join, defined 239
input
data fields, input record 21
record fields 21
INSERT statement 125
defined 27
insertion errors
limiting 119
restarting after 119
integer, CHECKPOINT specification 91, 92, 93
INTEGERDATE keyword 96
integer-to-decimal data conversions 20
INTO tname specification 125
invalid record numbers 148
J
JIS, defined 240
job scripts
example 73
multifile example
first output file 181
second output file 184
third output file 186
programming considerations, error limits 60
JOB, SCOPE parameter specification 138
join index, restrictions 62
join, defined 240
K
kanji character set codes 55
KANJIEUC_0U specification 161
KANJISJIS_0S specification 161
L
Linux, compiling and linking routines 228
254
loading 63
LOGDATA command syntax 129
LOGMECH command syntax 130
LOGOFF command
defined 24
syntax 131
LOGON command
defined 25
syntax 133
LOW specification 137
M
max, session specification 151
maximum sessions 44
MAXSESS 54
MEDIUM specification 137
merge join, defined 241
min, sessions specification 151
minimum sessions 44
MINSESS
configuration file setting 53
description 54
minutes specification 167
MSG string specification 138
MSG string specification, NOTIFY command 138
multifile FastLoad jobs
output file examples
first output file 181
second output file 184
third output file 186
running 75
multiple databases 91
MULTISET tables
duplicate rows not inserted 18, 60
using the MultiLoad utility 31
N
name specification
AXSMOD command 89
DEFINE command 97
NOTIFY command 138
name, defined 241
Named Pipes Access Module 89
nested join, defined 241
new-line characters in ASCII text files, accommodating 22
NFS. See Network File System
No Primary Index tables 63
NOBLOCK parameter 138
nonlabel (NL) tapes, not supported 24
nonunique
index sorts 60
secondary indexes 31
NoPI tables 63
Teradata FastLoad Reference
Index
NOSTOP keyword specification 156
NOTIFY command
defined 25
syntax 137
null, defined 242
NULLIF option 98
numeric fields 107
numeric-to-numeric data conversions 20
O
Object Access filter, defined 242
OFF specification 137
OLE DB Access Module 89
operating modes, supported 19
option specification 138
order of preference, utility variables 53
OS command, defined 25
outer join, defined 242
output buffer size specification 36
owner, defined 242
P
parser, defined 242
parsing engine (PE), defined 243
password specification 133
paused FastLoad jobs
definition 49
restarting 49
after a database overfill 50
after a system or FastLoad failure 49
after a Teradata Database failure 50
after an unrecoverable error 50
factors affecting 51
performance group, defined 243
PL/I program examples
compiling, linking and executing
on z/OS systems 222
INMOD routine 196
privileges, required 93
procedures, defined 244
product join, defined 243
product version numbers 3
profiles, defined 244
Q
queries, defined 244
query analysis, defined 244
query management, defined 244
QUEUE option specification
description 138
NOTIFY command 138, 139
QUIT command
Teradata FastLoad Reference
defined 24
syntax 145
R
range constraints 60
examples 61
types 60
RECORD command
defined 25
entering before INSERT statements 147
syntax 147
record mode load anomaly 61
record numbers, invalid 148
redundant conversions
example 59
supported 20
referential integrity 63
request, defined 245
required privileges
BEGIN LOADING command 93
INSERT statement 126
restart log table 93
restrictions and limitations, concurrent load tasks 59
results
defined 245
files 245
tables 245
return codes 48
RNAME parameter 138
row, defined 245
RowID join, defined 245
rule, defined 246
RUN command
defined 26
executing 150
nesting 150
syntax 149
S
sample procedure, invoking FastLoad
on z/OS systems 46
scheduled requests, defined 246
SCOPE parameter 138
secondary indexes
not supported by the FastLoad utility 18, 19, 63
using the MultiLoad utility 31
semicolon characters
FastLoad commands 87
SQL statements 87
separator, defined 246
session character set, AXSMOD 57
sessions 152
control commands, defined 24
255
Index
defined 246
limits 62, 153
maximum 44
minimum 44
number of 135
invalid 153
reported 136, 153
optimal number 152
SESSIONS command
defined 25
entering before the LOGON command 152
syntax 151
SET RECORD command
defined 26
syntax 154
SET SESSION CHARSET command
defined 26
syntax 161
SHOW command
defined 25
syntax 163
SHOW TABLE statement 126
SHOW VERSIONS command
defined 25
syntax 165
single sign-on
LOGON syntax 133
SLEEP
configuration file specification 53
defined 25
runtime option specification 38, 44
syntax 167
software releases, supported 3
Solaris, compiling and linking routines 225, 229
space requirements and limitations 62
SQL, defined 246
standard
error file 33
input file 33
name specification 43
output file 33
name specification 44
startrecordnumber specification 147
statement, defined 247
status codes
FastLoad-to-INMOD interface 66
INMOD-to-FastLoad interface 67
stored procedures, defined 247
string specification 138
supervisory user, defined 247
syntax and use 125
Syntax, how to read 175
SYSTEM/SYSTEMS specification 138
256
T
table definitions, using to define data 107
table, defined 247
TASM 25
tdpid specification 134
TENACITY
command
defined 25
syntax 170
configuration file specification 53
runtime option specification 39, 45
Teradata SQL statements
CREATE TABLE 26
DATABASE 26
DELETE 26
DROP TABLE 26
INSERT 27, 125
using BTEQ to enter 117
terminating FastLoad 47
termination return codes 48
TEXT
string specification 138
TEXT keyword specification 155
THRU
endrecordnumber specification 148
keyword, RECORD command 147
title, defined 248
tname specification
BEGIN LOADING command 91
HELP TABLE command 123
INSERT statement 125
transaction, defined 248
triggers, defined limitation 63
troubleshooting 173
type, defined 248
U
unformatted
data 22
records 158
UNFORMATTED keyword specification 155
Unicode
character sets 41, 42, 57
data, using 127
UNIX OS
HP-UX Itanium 227
HP-UX PA RISC 226
Linux 228
SPARC Systems Running Oracle Solaris 225
z/Linux 229
unsupported data sets and tapes 24
user 249
user groups, defined 249
Teradata FastLoad Reference
Index
username specification 133
UTF-16
character sets 41, 42, 57
defined 249
UTF-8
character sets 41, 42
defined 249
utility variables, order of preference 53
V
value, NULLIF specification 97
VALUES keyword 125
VARGRAPHIC data type specification 106
variable-length
fields, using 159
text 24
VARTEXT
keyword specification 155
records 158
version numbers 3
VERSIONS keyword 165
W
WebSphere MQ Access Module for Teradata
client version 89
server version 89
workgroups, defined 250
workload limits rule, defined 250
Z
z/Linux, compiling and linking routines 229
z/OS program examples
for creating and using INMOD routines
in Assembler 217
in COBOL 219
in IBM C 220
in PL/I 222
for invoking FastLoad 46
INMOD routines
using Assembler 191
using COBOL 194
using IBM C 197
using PL/I 196
zoned decimal 59
formats, supported 20
Teradata FastLoad Reference
257
Index
258
Teradata FastLoad Reference