Teradata FastLoad Reference

258
Teradata FastLoad Reference Release 14.10 B035-2411-082K March 2013

Transcript of Teradata FastLoad Reference

Page 1: Teradata FastLoad Reference

Teradata FastLoadReference

Release 14.10B035-2411-082K

March 2013

Page 2: Teradata FastLoad Reference

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: [email protected]. 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.

Page 3: Teradata FastLoad Reference

Teradata FastLoad Reference 3

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.

Page 4: Teradata FastLoad Reference

PrefacePrerequisites

4 Teradata FastLoad Reference

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

Teradata Tools and Utilities 14.10

• 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.

• 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.”

Page 5: Teradata FastLoad Reference

PrefaceAdditional Information

Teradata FastLoad Reference 5

Additional Information

Additional information that supports this product and Teradata Tools and Utilities is available at the web sites listed in the following table.

• 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.

Date and Release Description

Type of Information Description Access to Information

Release overview

Late information

Use the Release Definition for the following information:

• 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

1 Go to http://www.info.teradata.com/.

2 Click General Search under Online Publications.

3 Type 2029 in the Publication Product ID box.

4 Click Search.

5 Select the appropriate Release Definition from the search results.

Page 6: Teradata FastLoad Reference

PrefaceAdditional Information

6 Teradata FastLoad Reference

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 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.

Type of Information Description Access to Information

Page 7: Teradata FastLoad Reference

PrefaceAdditional Information

Teradata FastLoad Reference 7

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:

• Executive reports, case studies of customer experiences with Teradata, and thought leadership

• Technical information, solutions, and expert advice

• Press releases, mentions, and media resources

1 Go to Teradata.com.

2 Select a link.

Type of Information Description Access to Information

Page 8: Teradata FastLoad Reference

PrefaceAdditional Information

8 Teradata FastLoad Reference

Page 9: Teradata FastLoad Reference

Teradata FastLoad Reference 9

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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

What It Does. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

Formatted Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

Unformatted Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

Binary Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

Text Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

Variable-length Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

Unsupported Data Sets and Tapes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

Teradata FastLoad Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

Teradata FastLoad Command Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

Teradata SQL Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

Teradata FastLoad Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

Page 10: Teradata FastLoad Reference

Table of Contents

10 Teradata FastLoad Reference

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

Page 11: Teradata FastLoad Reference

Table of Contents

Teradata FastLoad Reference 11

Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

Programming Considerations for Routines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

Programming Structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

Addressing Mode on z/OS Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

Teradata FastLoad/INMOD Routine Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

Teradata FastLoad/Notify Exit Routine Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

Teradata FastLoad Sample INMOD Routines. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

Creating Custom INMOD Routines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

Teradata FastLoad Job Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

Enter Teradata FastLoad Commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

Teradata FastLoad Job Script Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

Run Multifile Teradata FastLoad Jobs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

Initiate the Teradata FastLoad Job and Loading the First Data Source . . . . . . . . . . . . . . 75

Restart the Teradata FastLoad Job and Loading the Second Data Source . . . . . . . . . . . . 76

Restart the Teradata FastLoad Job and Loading the Third Data Source. . . . . . . . . . . . . . 76

Terminate the Teradata FastLoad Job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

Command Functions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

Handling Teradata FastLoad Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

Teradata FastLoad Error Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

Error Recording . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

Error Table Formats. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

Correcting Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

Procedure for Correcting Errors in the First Error Table. . . . . . . . . . . . . . . . . . . . . . . . . . 80

Procedure for Correcting Errors in the Second Error Table . . . . . . . . . . . . . . . . . . . . . . . 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

Object Name Restrictions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

Geospatial Data Restrictions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

LOB Data Restrictions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

NUMBER Data Restrictions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

AXSMOD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

BEGIN LOADING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

Page 12: Teradata FastLoad Reference

Table of Contents

12 Teradata FastLoad Reference

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

Page 13: Teradata FastLoad Reference

Table of Contents

Teradata FastLoad Reference 13

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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191

Assembler INMOD Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191

COBOL INMOD Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194

PL/I INMOD Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196

IBM C INMOD Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217

Assembler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217

COBOL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219

IBM C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220

PL/I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222

IBM C or C++ INMODs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224

UNIX OS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225

SPARC Systems Running Oracle Solaris . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225

Opteron Systems Running Oracle Solaris . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225

HP-UX PA RISC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226

HP-UX Itanium . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227

Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228

z/Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229

Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230

Page 14: Teradata FastLoad Reference

Table of Contents

14 Teradata FastLoad Reference

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

Page 15: Teradata FastLoad Reference

Teradata FastLoad Reference 15

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

Page 16: Teradata FastLoad Reference

List of Tables

16 Teradata FastLoad Reference

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

Page 17: Teradata FastLoad Reference

Teradata FastLoad Reference 17

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.

DescriptionTeradata 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).

Page 18: Teradata FastLoad Reference

Chapter 1: OverviewOperating Features and Capabilities

18 Teradata FastLoad Reference

What It DoesWhen 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 WorksTeradata 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: 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.

Page 19: Teradata FastLoad Reference

Chapter 1: OverviewData Transfer Capabilities

Teradata FastLoad Reference 19

Operating ModesTeradata FastLoad runs in the following operating modes:

• Interactive

• Batch

Character SetsTeradata 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

Page 20: Teradata FastLoad Reference

Chapter 1: OverviewInput Data Formats

20 Teradata FastLoad Reference

Data Conversion CapabilitiesTeradata 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).

CheckpointsCheckpoints 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:

Page 21: Teradata FastLoad Reference

Chapter 1: OverviewInput Data Formats

Teradata FastLoad Reference 21

• 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 DataFormatted 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.

Page 22: Teradata FastLoad Reference

Chapter 1: OverviewInput Data Formats

22 Teradata FastLoad Reference

Unformatted DataUnformatted 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.

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 DataThe 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:

• A two-byte data length field

End-of-record The end-of-record delimiter field can be either of two hexadecimal values:

• 0A (line feed)

• 0D (carriage return)

Table 1: Formatted Record Field Descriptions

Input Record Field Description

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

Page 23: Teradata FastLoad Reference

Chapter 1: OverviewInput Data Formats

Teradata FastLoad Reference 23

• Optionally, a variable-length indicator bytes field

• A variable-length input data field

Table 3 lists the unformatted binary record field descriptions.

Text DataTEXT 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.

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.

Page 24: Teradata FastLoad Reference

Chapter 1: OverviewTeradata FastLoad Commands

24 Teradata FastLoad Reference

Variable-length TextVariable-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 TapesTeradata 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 SummaryThe 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

QUIT

Ends Teradata FastLoad sessions and terminates Teradata FastLoad

Page 25: Teradata FastLoad Reference

Chapter 1: OverviewTeradata FastLoad Commands

Teradata FastLoad Reference 25

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 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

Table 4: Teradata FastLoad Commands for Session Control (continued)

Command Name Function

Page 26: Teradata FastLoad Reference

Chapter 1: OverviewTeradata FastLoad Commands

26 Teradata FastLoad Reference

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 StatementsTeradata 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).

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.

Table 5: Teradata FastLoad Commands for Data Handling (continued)

Teradata FastLoad Command Function

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 Removes a table and all of its rows from a database

Page 27: Teradata FastLoad Reference

Chapter 1: OverviewTeradata FastLoad Example

Teradata FastLoad Reference 27

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 TableThe 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,passwordDROP TABLE employee;.quit

Creating the Source Data FileCreate and save a six-record text file named insert.input:

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.

Table 6: Teradata SQL Statements Supported in Teradata FastLoad (continued)

Teradata SQL Statement Function

Page 28: Teradata FastLoad Reference

Chapter 1: OverviewTeradata FastLoad Example

28 Teradata FastLoad Reference

|10021 |Brown, Jo |200|2312|Development |63000.00 |20|Jan 01 1955|F| |M|16| 0||10001 |Jones, Bill |100|5376|President |83000.00 |15|Jan 01 1960|M| |M|14| 0||10002 |Smith, Jim |100|4912|Sales |73000.00 |10|Jan 01 1970|M| |M|13| 1||10028 |Lee, Sandra |200|5844|Support |77000.00 | 4|Jan 01 1971|F| |M|18| 0||10029 |Berg, Andy |200|2312|Test |67000.00 |10|Jan 01 1967|M| |M|15| 0||10023 |Ayer, John |300|4432|Accounting |52000.00 | 8|Jan 01 1965|M| |M|13| 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 ScriptCreate 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,

Page 29: Teradata FastLoad Reference

Chapter 1: OverviewTeradata FastLoad Example

Teradata FastLoad Reference 29

:DeptNo,:PhoneNo,:JobTitle,:Salary,:YrsExp,:DOB,:Sex,:Race,:MStat,:EdLev,:HCap

);end loading;logoff;

Comments1 For syntax and descriptions of the following commands, see Chapter 3: “Teradata

FastLoad Commands”:

2 The CREATE TABLE statement creates a new table on the Teradata Database:

• Named employee

• With 13 columns:

• 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.

• SESSIONS

• ERRLIMIT

• LOGON

• SET RECORD

• DEFINE

• SHOW

• BEGIN LOADING

• INSERT

• END LOADING

• LOGOFF

• EmpNo

• Name

• DeptNo

• PhoneNo

• JobTitle

• Salary

• YrsExp

• DOB

• Sex

• Race

• MStat

• EdLev

• HCap

Page 30: Teradata FastLoad Reference

Chapter 1: OverviewTeradata FastLoad Example

30 Teradata FastLoad Reference

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 JobUse 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 TaskUse 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 120select * 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 Name DeptNo PhoneNo JobTitle Salary YrsExp DOB Sex Race MStat EdLev HCap----- ------------ ------ ------- --------- --------- ------ ----------- --- ---- ----- ----- ----10028 Lee, Sandra 200 5844 Support 77,000.00 4 JAN 01 1971 F M 18 010001 Jones, Bill 100 5376 Preside 83,000.00 15 JAN 01 1960 M M 14 010002 Smith, Jim 100 4912 Sales 73,000.00 10 JAN 01 1970 M M 13 110029 Berg, Andy 200 2312 Test 67,000.00 10 JAN 01 1967 M M 15 0

Other AlternativesThe 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 SystemsThe 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.

Page 31: Teradata FastLoad Reference

Chapter 1: OverviewTeradata FastLoad Example

Teradata FastLoad Reference 31

MultiLoad UtilityThe 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 FormatsThe 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 RoutinesIn 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.

Page 32: Teradata FastLoad Reference

Chapter 1: OverviewTeradata FastLoad Example

32 Teradata FastLoad Reference

Page 33: Teradata FastLoad Reference

Teradata FastLoad Reference 33

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 RequirementsIn 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

Page 34: Teradata FastLoad Reference

Chapter 2: Using Teradata FastLoadInvoking Teradata FastLoad

34 Teradata FastLoad Reference

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 ModeTo 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 ModeThis section covers invoking Teradata FastLoad in batch mode on network-attached and client-attached systems.

Batch Mode on Network-Attached Client SystemsRefer 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:

Page 35: Teradata FastLoad Reference

Chapter 2: Using Teradata FastLoadInvoking Teradata FastLoad

Teradata FastLoad Reference 35

Batch Mode on Mainframe-Attached z/OS Client SystemsRefer 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:

Mainframe-Attached Runtime ParametersTable 8 describes the runtime parameters used by Teradata FastLoad.

Using these Teradata FastLoad runtime parameters will override configuration parameter settings.

2411F007

fastload

-c characterSetName

-e fileSame

-s minutes

-d

-t hours

-b kilobytes < infileName > outfileName

-M maxSessions

-N minSessions

-v

-y

-i scriptEncoding

-u outputEncoding

-V

-r outputRate

2411D008

//FASTLOAD EXEC PGM=FASTLOAD

BUFSIZE= kilobytes

CHARSET=character-set-name

ERRLOG=filename

SLEEP=minutes

TENACITY=hours

MAXSESS=max-sessions

MINSESS=min-sessions

RATE=outputrate

DEBUG

,PARM = ' '

VERBOSE

,

RVERSION

Page 36: Teradata FastLoad Reference

Chapter 2: Using Teradata FastLoadInvoking Teradata FastLoad

36 Teradata FastLoad Reference

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

Page 37: Teradata FastLoad Reference

Chapter 2: Using Teradata FastLoadInvoking Teradata FastLoad

Teradata FastLoad Reference 37

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 Used to display FastLoad execution debugging information to the standard output.

Table 8: Runtime Parameters (Mainframe-Attached Systems) (continued)

Parameter Description

Page 38: Teradata FastLoad Reference

Chapter 2: Using Teradata FastLoadInvoking Teradata FastLoad

38 Teradata FastLoad Reference

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.

Table 8: Runtime Parameters (Mainframe-Attached Systems) (continued)

Parameter Description

Page 39: Teradata FastLoad Reference

Chapter 2: Using Teradata FastLoadInvoking Teradata FastLoad

Teradata FastLoad Reference 39

Network-Attached Runtime ParametersTable 9 describes the runtime parameters used by Teradata FastLoad.

Using these Teradata FastLoad runtime parameters will override configuration parameter settings.

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.

Table 8: Runtime Parameters (Mainframe-Attached Systems) (continued)

Parameter Description

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

Page 40: Teradata FastLoad Reference

Chapter 2: Using Teradata FastLoadInvoking Teradata FastLoad

40 Teradata FastLoad Reference

-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 Used to display FastLoad execution debugging information to the standard output

Table 9: Runtime Parameters (Network-Attached Systems) (continued)

Parameter Description

Page 41: Teradata FastLoad Reference

Chapter 2: Using Teradata FastLoadInvoking Teradata FastLoad

Teradata FastLoad Reference 41

-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.

Table 9: Runtime Parameters (Network-Attached Systems) (continued)

Parameter Description

Page 42: Teradata FastLoad Reference

Chapter 2: Using Teradata FastLoadInvoking Teradata FastLoad

42 Teradata FastLoad Reference

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.

Table 9: Runtime Parameters (Network-Attached Systems) (continued)

Parameter Description

Page 43: Teradata FastLoad Reference

Chapter 2: Using Teradata FastLoadInvoking Teradata FastLoad

Teradata FastLoad Reference 43

-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.

Table 9: Runtime Parameters (Network-Attached Systems) (continued)

Parameter Description

Page 44: Teradata FastLoad Reference

Chapter 2: Using Teradata FastLoadInvoking Teradata FastLoad

44 Teradata FastLoad Reference

> 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.

Table 9: Runtime Parameters (Network-Attached Systems) (continued)

Parameter Description

Page 45: Teradata FastLoad Reference

Chapter 2: Using Teradata FastLoadInvoking Teradata FastLoad

Teradata FastLoad Reference 45

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.”

-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.

Table 9: Runtime Parameters (Network-Attached Systems) (continued)

Parameter Description

Page 46: Teradata FastLoad Reference

Chapter 2: Using Teradata FastLoadInvoking Teradata FastLoad

46 Teradata FastLoad Reference

z/OS ExampleFollowing 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 ProcedureFollowing 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 *

Page 47: Teradata FastLoad Reference

Chapter 2: Using Teradata FastLoadTerminating Teradata FastLoad

Teradata FastLoad Reference 47

//* 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 ExamplesFollowing 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.

DefinitionThere 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.

Page 48: Teradata FastLoad Reference

Chapter 2: Using Teradata FastLoadTerminating Teradata FastLoad

48 Teradata FastLoad Reference

Normal TerminationUse 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:

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 TerminationThe 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.

2411A013

LOGOFF

QUIT

;

Page 49: Teradata FastLoad Reference

Chapter 2: Using Teradata FastLoadRestart a Paused Teradata FastLoad Job

Teradata FastLoad Reference 49

Restart a Paused Teradata FastLoad Job

This section describes restarting Teradata FastLoad jobs that have been paused or interrupted.

OverviewA 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 FailureWhen 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 accessselect errorcode, errorfieldnamefrom 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.

Page 50: Teradata FastLoad Reference

Chapter 2: Using Teradata FastLoadRestart a Paused Teradata FastLoad Job

50 Teradata FastLoad Reference

After a Database Overfill ConditionWhen 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 FailureRestarting 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 ConditionWhen 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:

1 Pauses the job.

2 Logs off all Teradata FastLoad sessions on the Teradata Database.

Page 51: Teradata FastLoad Reference

Chapter 2: Using Teradata FastLoadRestart a Paused Teradata FastLoad Job

Teradata FastLoad Reference 51

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 ProceduresThe 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 RESTARTEDThe last checkpoint was taken at row: 1100FastLoad 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

Page 52: Teradata FastLoad Reference

Chapter 2: Using Teradata FastLoadProgramming Considerations

52 Teradata FastLoad Reference

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 FileA 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 network-attached 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.

Page 53: Teradata FastLoad Reference

Chapter 2: Using Teradata FastLoadProgramming Considerations

Teradata FastLoad Reference 53

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 LocationOn 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 ContentsThe 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-sessionsMINSESS=min-sessionsDATAENCRYPTION=ON or OFFCONFIGERRORS=IGNORE/TERMINATERETRYFIRSTCONNECT=nRETRYOTHERCONNECT=nRETRYCONNECTINTERVAL=s

Page 54: Teradata FastLoad Reference

Chapter 2: Using Teradata FastLoadProgramming Considerations

54 Teradata FastLoad Reference

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 ProcessingTeradata 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.

Page 55: Teradata FastLoad Reference

Chapter 2: Using Teradata FastLoadProgramming Considerations

Teradata FastLoad Reference 55

• 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 SpecificationTable 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 Unicode character set Network-attached

Page 56: Teradata FastLoad Reference

Chapter 2: Using Teradata FastLoadProgramming Considerations

56 Teradata FastLoad Reference

Site-Defined Character SetsWhen 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.

Note: For information on defining a custom character set, see International Character Set Support (B035-1132).

Rules for Chinese and Korean Character Set UseFollow 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).

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

Page 57: Teradata FastLoad Reference

Chapter 2: Using Teradata FastLoadProgramming Considerations

Teradata FastLoad Reference 57

AXSMODWhen 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 SetsUTF-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 SetsTeradata 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 SetsTeradata 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 SpecificationsThe 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:

• ANSI/SQL DateTime data types cannot be used when specifying the column/field names in a DEFINE command.

Page 58: Teradata FastLoad Reference

Chapter 2: Using Teradata FastLoadProgramming Considerations

58 Teradata FastLoad Reference

• 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 TradeoffsThough 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 ModulesWhen 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.

CommentsTeradata 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.

Page 59: Teradata FastLoad Reference

Chapter 2: Using Teradata FastLoadProgramming Considerations

Teradata FastLoad Reference 59

Concurrent Load Utility TasksThe 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 FactorsBe 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 ExampleThe 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 ExampleThe 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.

Page 60: Teradata FastLoad Reference

Chapter 2: Using Teradata FastLoadProgramming Considerations

60 Teradata FastLoad Reference

Invalid Data Conversion ExampleThe 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 LimitsWhen 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 SortsIf 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 RowsTeradata 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 ConstraintsRange 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 TypesTable 12 list the two types of range constraints, explicit and implicit.

Page 61: Teradata FastLoad Reference

Chapter 2: Using Teradata FastLoadProgramming Considerations

Teradata FastLoad Reference 61

Range Constraint ExamplesThe 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.00FORMAT ‘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 AnomalyWhen 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 SignalsIf 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)

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.

Page 62: Teradata FastLoad Reference

Chapter 2: Using Teradata FastLoadProgramming Considerations

62 Teradata FastLoad Reference

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 LimitationsThe following sections describe restrictions and limitations relevant for programming with the Teradata FastLoad utility.

Session LimitsThe 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 LimitationsAlways 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 RestrictionsTeradata 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 LimitationTeradata 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.

Page 63: Teradata FastLoad Reference

Chapter 2: Using Teradata FastLoadProgramming Considerations

Teradata FastLoad Reference 63

Secondary Indexes LimitationTeradata 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 LimitationAttempting a Teradata FastLoad task or any action against tables with [referential integrity|defined triggers] produces an error condition.

Defined Triggers LimitationAttempting a Teradata FastLoad task or any action against tables with [referential integrity|defined triggers] produces an error condition.

Normalized Table RestrictionsTeradata 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 TablesA 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 QuotesStrings 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.

Page 64: Teradata FastLoad Reference

Chapter 2: Using Teradata FastLoadINMOD and Notify Exit Routines

64 Teradata FastLoad Reference

INMOD and Notify Exit Routines

This section provides information about how to use input modification (INMOD) and notify exit routines.

OverviewThis section describes the different types of routines and when to use them.

INMOD RoutinesThe 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 RoutinesA 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 RoutinesThis section describes programming languages supported for each type of routine, as well as other related considerations.

Programming LanguagesTeradata FastLoad is written in:

• IBM C for mainframe-attached z/OS client systems

• C for network-attached UNIX and Windows client systems

Page 65: Teradata FastLoad Reference

Chapter 2: Using Teradata FastLoadINMOD and Notify Exit Routines

Teradata FastLoad Reference 65

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.

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 StructureTable 14 defines the structure, by programming language, for communicating between Teradata FastLoad and an INMOD or notify exit routines.

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 PointsTable 15 shows the entry points for INMOD routines.

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

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).

Page 66: Teradata FastLoad Reference

Chapter 2: Using Teradata FastLoadINMOD and Notify Exit Routines

66 Teradata FastLoad Reference

Addressing Mode on z/OS SystemsUse 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 InterfaceTeradata FastLoad exchanges information with an INMOD routine by passing an address that points to a three-value structure: status code, length, and body.

Status CodeStatus 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 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

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.

Page 67: Teradata FastLoad Reference

Chapter 2: Using Teradata FastLoadINMOD and Notify Exit Routines

Teradata FastLoad Reference 67

Table 17 describes the two status codes used by the INMOD-to-Teradata FastLoad interface.

LengthLength 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.

BodyBody 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.

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: 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

Table 16: Teradata FastLoad--to--INMOD Interface Status Codes (continued)

Value Description

Page 68: Teradata FastLoad Reference

Chapter 2: Using Teradata FastLoadINMOD and Notify Exit Routines

68 Teradata FastLoad Reference

Teradata FastLoad/Notify Exit Routine InterfaceTeradata 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 File or INMOD open 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

2 Phase 1 begin The beginning of the insert phase, where the table name is specified by the INSERT statement.

• Table name length—4-byte unsigned integer

• Table name—128-character (maximum) array

• Database name—90 byte character array

Page 69: Teradata FastLoad Reference

Chapter 2: Using Teradata FastLoadINMOD and Notify Exit Routines

Teradata FastLoad Reference 69

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 crash message from the Teradata Database or from the CLIv2.

No data accompanies the Teradata Database restart event code

10 CLIv2 error Teradata FastLoad received a CLIv2 error.

• Error code—4-byte unsigned integer

11 Teradata Database error Teradata FastLoad received a 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.

• Error code—4-byte unsigned integer

12 Exit FastLoad is terminating. • Exit code—4-byte unsigned integer

Table 18: Events Passed to the Notify Exit Routine (continued)

Event Code Event Event Description Data Passed to the Notify Exit Routine

Page 70: Teradata FastLoad Reference

Chapter 2: Using Teradata FastLoadINMOD and Notify Exit Routines

70 Teradata FastLoad Reference

Teradata FastLoad Sample INMOD RoutinesTeradata 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.

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.

• 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

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 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—a character pointer

• Optional string length—4-byte unsigned integer

• Optional string—80-character (maximum) array

19 Phase 1 begin EON The beginning of the insert phase, where the table name is specified by the INSERT statement.

• Table name length—4-byte unsigned integer

• Table name—a character pointer

• Database name—a character pointer

Table 18: Events Passed to the Notify Exit Routine (continued)

Event Code Event Event Description Data Passed to the Notify Exit Routine

Page 71: Teradata FastLoad Reference

Chapter 2: Using Teradata FastLoadINMOD and Notify Exit Routines

Teradata FastLoad Reference 71

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.CThe 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.CThe 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 BlkExitCounter(Integer),c2(smallint),

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.

Page 72: Teradata FastLoad Reference

Chapter 2: Using Teradata FastLoadTeradata FastLoad Job Scripts

72 Teradata FastLoad Reference

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 RoutinesTo 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.

Page 73: Teradata FastLoad Reference

Chapter 2: Using Teradata FastLoadTeradata FastLoad Job Scripts

Teradata FastLoad Reference 73

DefinitionA 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 CommandsTeradata 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 ExampleThe 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,passwordDROP 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.

Page 74: Teradata FastLoad Reference

Chapter 2: Using Teradata FastLoadTeradata FastLoad Job Scripts

74 Teradata FastLoad Reference

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

Page 75: Teradata FastLoad Reference

Chapter 2: Using Teradata FastLoadRun Multifile Teradata FastLoad Jobs

Teradata FastLoad Reference 75

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 SourceThe 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 ;

LOGOFF Logs off all Teradata FastLoad sessions, terminates Teradata FastLoad, and presents the system command prompt.

Table 20: FastLoad Entering Commands (continued)

Command Description

Page 76: Teradata FastLoad Reference

Chapter 2: Using Teradata FastLoadRun Multifile Teradata FastLoad Jobs

76 Teradata FastLoad Reference

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 SourceThe 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 SourceThe 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 JobSending 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 FunctionsTable 21 describes the multifile Teradata FastLoad job scripts from the preceding example.

Page 77: Teradata FastLoad Reference

Chapter 2: Using Teradata FastLoadRun Multifile Teradata FastLoad Jobs

Teradata FastLoad Reference 77

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.

Page 78: Teradata FastLoad Reference

Chapter 2: Using Teradata FastLoadHandling Teradata FastLoad Errors

78 Teradata FastLoad Reference

Handling Teradata FastLoad Errors

This section provides information about handling Teradata FastLoad errors.

Teradata FastLoad Error ConditionsWhile 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.

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 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

and then presents the system command prompt.

LOGON Logs user JWT on to the Teradata Database

Table 21: Teradata FastLoad Terminating Commands (continued)

Command Description

Table 22: Error Conditions that Cause Teradata Database to Reject an Input Data Record

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.

Page 79: Teradata FastLoad Reference

Chapter 2: Using Teradata FastLoadHandling Teradata FastLoad Errors

Teradata FastLoad Reference 79

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 RecordingTeradata 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.

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 FormatsTable 24, the first error table, errortname1, has three columns:

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.

Table 22: Error Conditions that Cause Teradata Database to Reject an Input Data Record (continued)

Error Conditions Description

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.

Page 80: Teradata FastLoad Reference

Chapter 2: Using Teradata FastLoadHandling Teradata FastLoad Errors

80 Teradata FastLoad Reference

The format of the second error table, errortname2, is identical to that of the Teradata FastLoad target table.

Correcting ErrorsThough 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 TableUse 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 errortname1 ORDER BY ErrorCode ;

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.

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.

Page 81: Teradata FastLoad Reference

Chapter 2: Using Teradata FastLoadHandling Teradata FastLoad Errors

Teradata FastLoad Reference 81

ErrorCode ErrorFieldName--------- ------------------

2679 A2679 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.outSELECT 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.outSELECT DataParcel FROM errortname1

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.

Caution: 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

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

Page 82: Teradata FastLoad Reference

Chapter 2: Using Teradata FastLoadHandling Teradata FastLoad Errors

82 Teradata FastLoad Reference

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 TableUse 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:

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 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.

4 Repeat Steps 2 and 3 until all rows in the error table are accounted for.

Syntax Element Description

cname Unique primary index for the table

errortname2 Name of the second error table

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

Page 83: Teradata FastLoad Reference

Chapter 2: Using Teradata FastLoadHandling RDBMS Retryable and Restartable Error Codes

Teradata FastLoad Reference 83

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.

Page 84: Teradata FastLoad Reference

Chapter 2: Using Teradata FastLoadFastLoad Statistics

84 Teradata FastLoad Reference

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 StatisticsTeradata 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.19MB/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:

Page 85: Teradata FastLoad Reference

Chapter 2: Using Teradata FastLoadFastLoad Statistics

Teradata FastLoad Reference 85

**** 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)

Page 86: Teradata FastLoad Reference

Chapter 2: Using Teradata FastLoadFastLoad Statistics

86 Teradata FastLoad Reference

Page 87: Teradata FastLoad Reference

Teradata FastLoad Reference 87

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 RestrictionsThe following Syntax rules apply to object names:

• A semicolon cannot be used in an object name because a semicolon is used to designate the end of a Teradata FastLoad command.

Page 88: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsSyntax Notes

88 Teradata FastLoad Reference

• 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 RestrictionsThe following rule applies to geospatial data:

• Teradata FastLoad does not support ST_Geometry geospatial data.

LOB Data RestrictionsThe following rule applies to LOB data:

• Teradata FastLoad does not support LOB data.

NUMBER Data RestrictionsThe following restrictions apply to NUMBER:

• Nullif and apply-where clause support includes NUMBER is not included.

• SET and ACCEPT commands cannot assign and accept NUMBER.

Page 89: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsAXSMOD

Teradata FastLoad Reference 89

AXSMOD

PurposeThe 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

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).

2411A014

AXSMOD ;

"init-string"

name

Page 90: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsAXSMOD

90 Teradata FastLoad Reference

Usage Notes Table 25 describes the things to consider when using the AXSMOD command.

ExampleThe 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

• 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

Table 25: Usage Notes for AXSMOD

Topic Usage Notes

When to Use the AXSMOD Command

The AXSMOD command is not required for loading:

• 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.

Command Placement

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.

Page 91: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsBEGIN LOADING

Teradata FastLoad Reference 91

BEGIN LOADING

PurposeThe 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

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.

2411C011

BEGIN LOADING tname1dbname.

A

ERRORFILES errortname1,dbname.

BAdbname.

B

errortname2

;

CHECKPOINT

INDICATORS

integer DATAENCRYPTION valueNODROP

Page 92: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsBEGIN LOADING

92 Teradata FastLoad Reference

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.

Syntax Element Description

Page 93: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsBEGIN LOADING

Teradata FastLoad Reference 93

Usage NotesTable 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):

• DELETE

• INSERT

• SELECT

• UPDATE

Error Tables Descriptions

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.

Page 94: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsBEGIN LOADING

94 Teradata FastLoad Reference

ExampleThe 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!

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.

See the following documents for more information about indicator bits and the INDICATORS option:

• 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)

Table 26: Usage Note for BEGIN LOADING (continued)

Topic Usage Notes

2411A015

01001000 00000000 F1 F2 F3 F4 F5 F6 F7 F8 F16. . . .

These fields are nulled

Page 95: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsCLEAR

Teradata FastLoad Reference 95

CLEAR

PurposeThe CLEAR command cancels the definitions that were specified by a previous DEFINE command, including the input data source.

Syntax

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 MessageThe Teradata FastLoad completion message is:

Warning: All previous column and file definitions cleared!

If the SHOW command now is entered, the result is blank.

2411A016

CLEAR ;

Page 96: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsDATEFORM

96 Teradata FastLoad Reference

DATEFORM

PurposeThe DATEFORM command specifies the form of the DATE data type specifications for the Teradata FastLoad job.

Syntax

where

Usage Notes Table 27 describes the things to consider when using the DATEFORM command.

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.

DATEFORM INTEGERDATE

ANSIDATE

;

2411A017

Table 27: Usage Notes for DATEFORM

Topic Usage Notes

Command Placement and Frequency

Only use one DATEFORM command.

The command must be entered before the LOGON 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.

See Table 28 for a description of the fixed-length CHAR representations for each DATE, TIME, TIMESTAMP, and INTERVAL data type specification.

Release Applicability The ANSIDATE specification is valid for Teradata FastLoad jobs.

Page 97: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsDEFINE

Teradata FastLoad Reference 97

DEFINE

PurposeThe 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

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.

2411A018

= filename

DDNAME

FILE

INMOD = name

A

A ;

DEFINE

DEF ,

,NULLIF=

fieldname (datatype )

value

Page 98: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsDEFINE

98 Teradata FastLoad Reference

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.

Syntax Element Description

Page 99: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsDEFINE

Teradata FastLoad Reference 99

Usage NotesThe 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.

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 forz/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.

Syntax Element Description

Page 100: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsDEFINE

100 Teradata FastLoad Reference

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.

Page 101: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsDEFINE

Teradata FastLoad Reference 101

NUMBER(p,s)

NUMBER(p)

or

NUMBER

NUMBER(*,y)

maxsize = 19 The first two forms are fixed point NUMBER. Other forms are floating point NUMBER.

For more information on the NUMBER data type, NUMBER see SQL Data Types and Literals (B035-1143).

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.

Table 28: Input Length and Field Descriptions (continued)

Data Type Length Description

Page 102: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsDEFINE

102 Teradata FastLoad Reference

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.

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 <= n

16-bit integer, count m, followed by m bytes of data

Table 28: Input Length and Field Descriptions (continued)

Data Type Length Description

Page 103: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsDEFINE

Teradata FastLoad Reference 103

• 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

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.

Table 28: Input Length and Field Descriptions (continued)

Data Type Length Description

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.

Page 104: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsDEFINE

104 Teradata FastLoad Reference

• 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.

“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.

Syntax Element Description

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.

The total number of bytes must not exceed two times the number of bytes specified in the data description.

Characters must be within the range of 0-9 or A-F.

Valid examples:

DEFINE T1(BYTE (7), NULLIF = ’01’XB);DEFINE T1(BYTE (7), NULLIF =’0123456789ABCD’XB);

Invalid examples:

DEFINE T1(BYTE (7), NULLIF = ’0’XB) ; DEFINE T1(BYTE (7), NULLIF = ’0M’XB) ;

Page 105: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsDEFINE

Teradata FastLoad Reference 105

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.

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.

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) ;

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.

Using NULLIF for DECIMAL (other than zero) may jeopardize a NULLIF match.

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) ;

Table 29: Limitations by Data Type (continued)

Data Type Limitations Examples

Page 106: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsDEFINE

106 Teradata FastLoad Reference

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.

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

A valid example:

DEFINE T1(FLOAT, NULLIF = 123) ;

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”.

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.

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.

The GRAPHIC or VARGRAPHIC string has this form:

G’<ABC>’where <ABC> is the quoted string of valid MBC and the characters < and > represent 0x0E and 0x0F.

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');

Valid examples on network-attached systems:

DEFINE T1(GRAPHIC(4), NULLIF = 'ABCDEFGH');DEFINE T1(GRAPHIC(4), NULLIF = '01234567');

Invalid examples on network-attached systems:

DEFINE T1(GRAPHIC(4), NULLIF = G'<ABCDEFGH>');DEFINE T1(GRAPHIC(4), NULLIF = G'<01234567>');

INTEGER 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) ;

Table 29: Limitations by Data Type (continued)

Data Type Limitations Examples

Page 107: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsDEFINE

Teradata FastLoad Reference 107

• 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 Etable1, Etable2 ;DEFINE FILE = Accounts ;INSERT Employee.*;

SMALLINT Small integer fields must be within the range of

-32768 to 32767.

Valid examples:

DEFINE T1(SMALLINT, NULLIF = 123) ;DEFINE T1(SMALLINT, NULLIF = -123) ;

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.

Table 29: Limitations by Data Type (continued)

Data Type Limitations Examples

Page 108: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsDEFINE

108 Teradata FastLoad Reference

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 Etable1, Etable2 ;

DEFINE FILE = INFILE ;HELP TABLE Employee ;INSERT INTO Employee (EmpNum, Name) 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/dd1998/01/01

TIMETIME (n)

Where n is the number of digits after the decimal point, 0 through 6. (Default = 6.)

Convert to: CHAR(8 + n + (1 if n > 0, otherwise 0))

Page 109: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsDEFINE

Teradata FastLoad Reference 109

Format (n = 0): Example:

hh:mm:ss11:37:58

Format: (n = 4): Example:

hh:mm:ss.ssss11:37:58.1234

TIMESTAMPTIMESTAMP (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:ss1998-09-04 11:37:58

Format (n = 4): Example:

yyyy-mm-dd hh:mm:ss.ssss1998-09-04 11:37:58.1234

TIME WITH TIME ZONETIME (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:mm11:37:58-08:00

Format (n = 4):Example:

hh:mm:ss.ssss {±} hh:mm11:37:58.1234-08:00

TIMESTAMP WITH TIME ZONETIMESTAMP (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:mm1998-09-24 11:37:58+07:00

Format (n = 4):Example:

yyyy-mm-dd hh:mm:ss.ssss{±}hh:mm1998-09-24 11:37:58.1234+07:00

INTERVAL YEARINTERVAL YEAR (n)

Where n is the number of digits, 1 through 4. (Default = 2.)

Convert to: CHAR(n)

Format (n = 2):Example:

yy98

Format (n = 4):Example:

yyyy1998

Table 30: ANSI/SQL DateTime Specifications (continued)

Page 110: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsDEFINE

110 Teradata FastLoad Reference

INTERVAL YEAR TO MONTHINTERVAL 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-mm98-12

Format (n = 4):Example:

yyyy-mm1998-12

INTERVAL MONTHINTERVAL MONTH (n)

Where n is the number of digits, 1 through 4. (Default = 2.)

Convert to: CHAR(n)

Format (n = 2):Example:

mm12

Format (n = 4):Example:

mmmm0012

INTERVAL DAYINTERVAL DAY (n)

Where n is the number of digits, 1 through 4. (Default = 2.)

Convert to: CHAR(n)

Format (n = 2):Example:

dd31

Format (n = 4):Example:

dddd0031

INTERVAL DAY TO HOURINTERVAL 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 hh31 12

Format (n = 4):Example:

dddd hh0031 12

INTERVAL DAY TO MINUTEINTERVAL DAY (n) TO MINUTE

Where n is the number of digits, 1 through 4. (Default = 2.)

Convert to: CHAR(n + 6)

Table 30: ANSI/SQL DateTime Specifications (continued)

Page 111: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsDEFINE

Teradata FastLoad Reference 111

Format (n = 2):Example:

dd hh:mm31 12:59

Format (n = 4):Example:

dddd hh:mm0031 12:59

INTERVAL DAY TO SECONDINTERVAL DAY (n) TO SECONDINTERVAL 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:ss31 12:59:59

Format (n = 4, m = 4):Example:

dddd hh:mm:ss.ssss0031 12:59:59:59.1234

INTERVAL HOURINTERVAL HOUR (n)

Where n is the number of digits, 1 through 4. (Default = 2.)

Convert to: CHAR(n)

Format (n = 2):Example:

hh12

Format (n = 4):Example:

hhhh0012

INTERVAL HOUR TO MINUTEINTERVAL 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:mm12:59

Format (n = 4):Example:

hhhh:mm0012:59

INTERVAL HOUR TO SECONDINTERVAL HOUR (n) TO SECONDINTERVAL HOUR TO SECOND (m)INTERVAL HOUR (n) TO SECOND (m)

Table 30: ANSI/SQL DateTime Specifications (continued)

Page 112: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsDEFINE

112 Teradata FastLoad Reference

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:ss12:59:59

Format (n = 4, m = 4):Example:

hhhh:mm:ss.ssss0012:59:59.1234

INTERVAL MINUTEINTERVAL MINUTE (n)

Where n is the number of digits, 1 through 4. (Default = 2.)

Convert to: CHAR(n)

Format (n = 2):Example:

mm59

Format (n = 4):Example:

mmmm0059

INTERVAL MINUTE TO SECONDINTERVAL MINUTE (n) TO SECONDINTERVAL 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:ss59:59

Format (n = 4, m = 4):Example:

mmmm:ss.ssss0059:59.1234

INTERVAL SECONDINTERVAL 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.)

Convert to: CHAR(n + m + (1 if m > 0, 0 otherwise))

Format (n = 2, m = 0):Example:

ss59

Table 30: ANSI/SQL DateTime Specifications (continued)

Page 113: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsDEFINE

Teradata FastLoad Reference 113

• 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))

Format (n = 4, m = 4):Example:

ssss.ssss0059.1234

Table 30: ANSI/SQL DateTime Specifications (continued)

Page 114: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsDEFINE

114 Teradata FastLoad Reference

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

Page 115: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsDEFINE

Teradata FastLoad Reference 115

+ 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

Page 116: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsDEFINE

116 Teradata FastLoad Reference

Dimensions 1 Element Type D UDT Name ? Array Scope [1:2]

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.

Page 117: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsEND LOADING

Teradata FastLoad Reference 117

END LOADING

PurposeThe 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

Usage Notes Table 31 describes the things to consider when using the END LOADING command.

ExampleThe following command example completes a Teradata FastLoad job:

END LOADING ;

2411A019

END LOADING ;

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.

Page 118: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsEND LOADING

118 Teradata FastLoad Reference

Completion MessageThe 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 Teradata FastLoad Response Layout

If the Job includes a RECORD command

Total Records Read = 500- skipped by RECORD command = 50- sent to the RDBMS = 450Total Error Table 1 = 25Total Error Table 2 = 0Total Inserts Applied = 425Total Duplicate Rows = 0

If the Job does not include a RECORD command

Total Records Read = 500Total Error Table 1 = 25Total Error Table 2 = 0Total Inserts Applied = 475Total Duplicate Rows = 0

Page 119: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsERRLIMIT

Teradata FastLoad Reference 119

ERRLIMIT

PurposeThe ERRLIMIT command limits the number of records that can be rejected while inserting data into the Teradata FastLoad table.

Syntax

where

Usage Notes Table 33 describes the things to consider when using the ERRLIMIT command.

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.

2411A021

ERRLIMIT n ;

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 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.

Page 120: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsERRLIMIT

120 Teradata FastLoad Reference

ExampleThe following command example terminates the job after 20 errors:

ERRLIMIT 20 ;

Completion MessageThe Teradata FastLoad completion message is:

Error limit set to :20

Page 121: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsHELP

Teradata FastLoad Reference 121

HELP

PurposeThe HELP command returns the syntax of all Teradata FastLoad commands and lists the Teradata SQL statements supported by Teradata FastLoad.

Syntax

Usage Notes Table 34 describes the things to consider when using the HELP command.

ExampleThe following command example returns a list of Teradata FastLoad commands:

HELP ;

Completion MessageThe 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 { ----------- } ;

2411A020

HELP ;

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.

Page 122: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsHELP

122 Teradata FastLoad Reference

{ ANSIDATE } DEF[INE]

[ fieldname (data type [,NULLIF [=] value ]) ...[,fieldname (data type [,NULLIF [=] value ])] ][ { FILE=filename } ][ { } ] ;[ { INMOD=name } ]

END LOADING ;ERRLIMIT n ;

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 theFastLoad utility:CREATE TABLEDATABASE dbname ;DEL[ETE] FROM tname [ ALL ] ;DROP TABLE tname ;

Note: Replace “FILE=” with “DDNAME=” for z/OS.

Page 123: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsHELP TABLE

Teradata FastLoad Reference 123

HELP TABLE

PurposeThe HELP TABLE command creates a list of field names by querying the Teradata Database and deriving the DEFINE list from the table definition.

Syntax

where

Usage Notes Table 35 describes the things to consider when using the HELP TABLE command.

Syntax Element Description

tname Table to be queried.

dbname Database in which the table resides.

2411A023

HELP TABLE

dbname.tname ;

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.

Page 124: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsHELP TABLE

124 Teradata FastLoad Reference

ExampleThe 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 ;

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.

Table 35: Usage Notes for HELP TABLE (continued)

Topic Usage Notes

Page 125: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsINSERT

Teradata FastLoad Reference 125

INSERT

PurposeINSERT 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

where

Usage Notes The following table describes the things to consider when using the INSERT statement.

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.

2411A024

tnameINSERT

INTO .*

( cname )

,

( :fieldname )

,

VALUES

;

INS

values

values

Page 126: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsINSERT

126 Teradata FastLoad Reference

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.

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.

Page 127: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsINSERT

Teradata FastLoad Reference 127

Example 1The 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 2The 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 3Sometimes 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.

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.

Table 36: Usage Notes for INSERT (continued)

Topic Usage Notes

Page 128: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsINSERT

128 Teradata FastLoad Reference

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.

Page 129: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsLOGDATA

Teradata FastLoad Reference 129

LOGDATA

PurposeSupplies 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

where

Usage NotesFor more information about logon security, see Security Administration (B035-1100).

ExampleIf 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;

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.

2411A036

.LOGDATA ;logdata_string

Page 130: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsLOGMECH

130 Teradata FastLoad Reference

LOGMECH

PurposeIdentifies 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

where

Usage NotesEvery 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).

ExampleIf 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;

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.

2409A053

.LOGMECH ;logmech_name

Page 131: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsLOGOFF

Teradata FastLoad Reference 131

LOGOFF

PurposeThe LOGOFF command ends Teradata FastLoad sessions and exits from the Teradata Database.

The LOGOFF and QUIT commands may be used interchangeably.

Syntax

Usage Notes Table 37 describes the things to consider when using the LOGOFF command.

2411A013

LOGOFF

QUIT

;

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.

Page 132: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsLOGOFF

132 Teradata FastLoad Reference

ExampleThe following command example ends Teradata FastLoad and exits the Teradata Database:

LOGOFF ;

Completion MessageThe 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

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 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

Page 133: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsLOGON

Teradata FastLoad Reference 133

LOGON

PurposeThe LOGON command establishes one or more Teradata FastLoad sessions with the Teradata Database.

SyntaxStandard LOGON Syntax

Single Sign-on LOGON Syntax

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.

2411A022

LOGON

tdpid/

username, pasword

,'acctid'

;

2411A006

LOGONtdpid/ username , password

;,'acctid'

Page 134: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsLOGON

134 Teradata FastLoad Reference

Usage Notes Table 39 describes the things to consider when using the LOGON command.

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.

Syntax Element Description

Page 135: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsLOGON

Teradata FastLoad Reference 135

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

The number of Teradata FastLoad sessions depends on the system limitations described in “Session Limits” on page 62.

Page 136: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsLOGON

136 Teradata FastLoad Reference

ExampleThe following command example logs on user Peterson:

LOGON DBC/peterson,HTims ;

Completion MessageThe Teradata FastLoad completion message is:

Number of FastLoad sessions connected = 8FDL4808 LOGON successful

Number of Sessions (continued)

Teradata FastLoad attempts to connect sessions, in groups of 16, until either:

• 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.

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 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.

Table 39: Usage Notes for LOGON (continued)

Topic Usage Notes

Page 137: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsNOTIFY

Teradata FastLoad Reference 137

NOTIFY

PurposeThe 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

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.

2414A005

NOTIFY OFF

LOW

;

EXIT

MSG

QUEUE

option

MEDIUM EXIT

string

MSG

HIGH " "TEXTname

string" "

string" "

string" "TEXTnameEXITEON

EXITEONEXIT64

Page 138: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsNOTIFY

138 Teradata FastLoad Reference

Table 40 lists events that create notification.

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.

Syntax Element Description

Page 139: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsNOTIFY

Teradata FastLoad Reference 139

Usage NotesTable 41 describes the things to consider when using the NOTIFY command.

Table 40: Events that Create Notifications

Event

Notification Level

SignifiesLow Medium High

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 Yes Teradata FastLoad is terminating

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.

Page 140: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsNOTIFY

140 Teradata FastLoad Reference

Message ExamplesTable 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.

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.”

Table 41: Usage Notes for NOTIFY (continued)

Topic Usage Notes

Table 42: NOTIFY Command Message Examples

Teradata FastLoad Event Message

Notify processed - FastLoad notify processed.

Page 141: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsNOTIFY

Teradata FastLoad Reference 141

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.

Table 42: NOTIFY Command Message Examples (continued)

Teradata FastLoad Event Message

Page 142: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsOS

142 Teradata FastLoad Reference

OS

PurposeThe OS command submits an operating system command to the client environment during a Teradata FastLoad session.

Syntax

where

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.

Windows ExamplesTable 44 shows an example procedure for the OS command used on a Windows client system.

Syntax Element Description

command Any command that is valid for the client operating system

2411A025

OS ;command

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.

Page 143: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsOS

Teradata FastLoad Reference 143

z/OS ExampleTable 45 shows an example procedure for the OS command used on an z/OS client system.

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.onec:\teradata\bin>edit myfile.onec:\teradata\bin>exit

Enter exitto exit the Windows environment and return to Teradata FastLoad.

Page 144: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsOS

144 Teradata FastLoad Reference

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 PROMPTWRITE 'FASTLOAD CLIST TTU14.10'ALLOC FI(CTRANS) DA('IMB_C LinkLib') SHRALLOC 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>;

Page 145: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsQUIT

Teradata FastLoad Reference 145

QUIT

PurposeThe QUIT command ends Teradata FastLoad sessions and exits from the Teradata Database.

The LOGOFF and QUIT commands may be used interchangeably.

Syntax

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.

2411A026

LOGOFF

QUIT ;

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.

Page 146: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsQUIT

146 Teradata FastLoad Reference

ExampleThe following command example ends Teradata FastLoad and exits the Teradata Database:

QUIT ;

Completion MessageThe 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

Page 147: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsRECORD

Teradata FastLoad Reference 147

RECORD

PurposeThe RECORD command defines the records of the input data source at which Teradata FastLoad processing starts and ends.

Syntax

where

Usage Notes Table 47 describes the things to consider when using the RECORD command.

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.

2411A027

RECORD

startrecordnumber THRU endrecordnumber

;

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.

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.

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.

Page 148: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsRECORD

148 Teradata FastLoad Reference

ExampleThe 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 MessageThe Teradata FastLoad completion message is:

Starting record number set to :1000Ending record number set to :20000

ExampleThe 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 MessageThe Teradata FastLoad completion message is:

Starting record number set to :1Ending record number set to :50000

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.

Table 47: Usage Notes for RECORD (continued)

Topic Usage Notes

Page 149: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsRUN

Teradata FastLoad Reference 149

RUN

PurposeThe RUN command invokes a specified external source as the current source of commands and statements.

Syntax

where

Usage NotesTable 48 describes the things to consider when using the RUN command.

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.

.RUN [FILE] fileid ;

2411B035

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.

Page 150: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsRUN

150 Teradata FastLoad Reference

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

The source specified by a RUN command can have up to five levels of nested RUN commands.

Table 48: Usage Notes for Run (continued)

Topic Usage Notes

Page 151: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsSESSIONS

Teradata FastLoad Reference 151

SESSIONS

PurposeThe 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

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.

2411A028

SESSIONS ;

*

max

*

min

Page 152: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsSESSIONS

152 Teradata FastLoad Reference

Usage NotesTable 49 describes the things to consider when using the SESSIONS command.

* (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.

Syntax Element Description

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

The SESSIONS command must be entered before the LOGON command in the Teradata FastLoad job.

Page 153: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsSESSIONS

Teradata FastLoad Reference 153

Example 1The following example specifies five Teradata FastLoad sessions:

SESSIONS 5 ;

Example 2The following example specifies ten Teradata FastLoad sessions, with a minimum of five:

SESSIONS 10 5 ;

Completion MessageThe Teradata FastLoad completion message is:

FDL4866 SESSIONS command accepted

Error MessageIf an invalid value is specified, Teradata FastLoad responds with the following error message:

FDL4867 Invalid number of sessions requestedFastLoad will log on as many sessions as possible.

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 requestedFastLoad will log on as many sessions as possible

Table 49: Usage Notes for SESSIONS (continued)

Topic Usage Notes

Page 154: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsSET RECORD

154 Teradata FastLoad Reference

SET RECORD

PurposeThe 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

2411B001

SET RECORD VARTEXT ‘|’

‘c’

‘p’

;

‘efilename’

DELIMITER

A

DISPLAY ERRORS

NOSTOPTRIM NONE

QUOTE NO

LEADINGTRAILINGBOTH

‘ ” ’OPTIONAL

‘ q ’‘ r ’

YES

A

Page 155: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsSET RECORD

Teradata FastLoad Reference 155

Figure 2: For Network-Attached Client Systems

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 Keyword specification that the input data source is in variable-length text record format, with each field separated by a delimiter character.

2411A012

SET RECORD ;

;

FORMATTEDUNFORMATTEDBINARYTEXTVARTEXT

DELIMITER

' I '

' " '

'c '

DISPLAY_ERRORS

NOSTOPTRIM NONE

LEADINGTRAILING 'p'BOTH

'q'' r '

QUOTE NOOPTIONALYES

'efilename'

A

A

Page 156: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsSET RECORD

156 Teradata FastLoad Reference

‘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.

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.

Syntax Element Description

Page 157: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsSET RECORD

Teradata FastLoad Reference 157

Usage Notes The following are the things to consider when using the SET RECORD command.

• Data Formats

'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.

Syntax Element Description

Page 158: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsSET RECORD

158 Teradata FastLoad Reference

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:

• DISPLAY_ERRORS

Page 159: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsSET RECORD

Teradata FastLoad Reference 159

• 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 DefinitionName Type SizeCo1001 Integer 4 bytesCo1002 Varchar(8) up to 8 bytesCo1003 Date 4 bytesdefine 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 DefinitionName Type SizeCo1001 Integer 4 bytesCo1002 Char(8) 8 bytesCo1003 Date 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,

Page 160: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsSET RECORD

160 Teradata FastLoad Reference

: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.Tablevalues ( :Co1001,

:Co1002,:Co1003 ) ;

Control Char Co1001 Co1002 Co10030FCA037CB86BFF8A|00030506|4549474854202020|000CFD1F|0A

New line

Note: Some systems might require a Newline(char(2)) specification instead of Newline(char(1)).

ExampleThe following command example sets records to unformatted mode:

set record unformatted ;

Completion MessageThe Teradata FastLoad completion message is:

Now set to read “UNFORMATTED” records.

Page 161: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsSET SESSION CHARSET

Teradata FastLoad Reference 161

SET SESSION CHARSET

PurposeThe 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

where

Usage NotesTable 50 describes the things to consider when using the SET SESSION CHARSET command.

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.

2411B029

SET SESSION CHARSET ASCII

KANJIEUC _ 0 U

KANJISJIS _ 0 S

;""

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.

Page 162: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsSET SESSION CHARSET

162 Teradata FastLoad Reference

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.

Table 50: Usage Notes for SET SESSION CHARSET (continued)

Topic Usage Notes

Page 163: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsSHOW

Teradata FastLoad Reference 163

SHOW

PurposeThe 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

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.

ExampleWhen 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:

2411A030

SHOW ;

Page 164: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsSHOW

164 Teradata FastLoad Reference

FILE = EmpDataEMPNO OFFSET= 0 LEN = 2 SMALLINTNAME OFFSET = 2 LEN = 12 VARCHARDEPTNO OFFSET= 16 LEN = 2 DECIMALJOBTITLE OFFSET= 18 LEN = 12 VARCHARSALARY OFFSET= 32 LEN = 4 DECIMALYRSEXP OFFSET= 36 LEN = 1 BYTEINTDOB OFFSET= 37 LEN = 4 DATESEX OFFSET= 41 LEN = 1 CHARRACE OFFSET= 42 LEN = 1 CHARMSTAT OFFSET= 43 LEN = 1 CHAREDLEV OFFSET= 44 LEN = 1 BYTEINTHCAP OFFSET= 45 LEN = 1 BYTEINTTOTAL RECORD LENGTH= 46

Page 165: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsSHOW VERSIONS

Teradata FastLoad Reference 165

SHOW VERSIONS

PurposeThe SHOW VERSIONS command displays the current level of all Teradata FastLoad utility software modules.

Syntax

Usage NotesUse the SHOW VERSIONS command to retrieve the version information when reporting software problems.

ExampleThe 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

2411A031

VERSIONS

VERSION

SHOW ;

Page 166: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsSHOW VERSIONS

166 Teradata FastLoad Reference

FastLoad linking date: Aug 16 2012

Page 167: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsSLEEP

Teradata FastLoad Reference 167

SLEEP

PurposeThe 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

where

Usage NotesTable 51 describes the things to consider when using the SLEEP command.

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.

2411A032

SLEEP ;minutes

Page 168: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsSLEEP

168 Teradata FastLoad Reference

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

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.

Page 169: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsSLEEP

Teradata FastLoad Reference 169

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

Table 51: Usage Notes for SLEEP (continued)

Topic Usage Notes

Page 170: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsTENACITY

170 Teradata FastLoad Reference

TENACITY

PurposeThe 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

where

Usage NotesTable 52 describes the things to consider when using the TENACITY command.

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.

2411A033

TENACITY ;hours

Page 171: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsTENACITY

Teradata FastLoad Reference 171

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

Page 172: Teradata FastLoad Reference

Chapter 3: Teradata FastLoad CommandsTENACITY

172 Teradata FastLoad Reference

Page 173: Teradata FastLoad Reference

Teradata FastLoad Reference 173

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++

Page 174: Teradata FastLoad Reference

Chapter 4: TroubleshootingCompiler Versions

174 Teradata FastLoad Reference

Page 175: Teradata FastLoad Reference

Teradata FastLoad Reference 175

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

PathsThe 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.

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.

Page 176: Teradata FastLoad Reference

Appendix A: How to Read Syntax DiagramsSyntax Diagram Conventions

176 Teradata FastLoad Reference

Continuation LinksPaths that are too long for one line use continuation links. Continuation links are circled letters indicating the beginning and end of a link:

When you see a circled letter in a syntax diagram, go to the corresponding circled letter and continue reading.

Required EntriesRequired entries appear on the main path:

If you can choose from more than one entry, the choices appear vertically, in a stack. The first entry appears on the main path:

Optional EntriesYou may choose to include or disregard optional entries. Optional entries appear below the main path:

FE0CA002

A

A

FE0CA003

SHOW

FE0CA005

SHOW

VERSIONS

CONTROLS

FE0CA004

SHOW

CONTROLS

Page 177: Teradata FastLoad Reference

Appendix A: How to Read Syntax DiagramsSyntax Diagram Conventions

Teradata FastLoad Reference 177

If you can optionally choose from more than one entry, all the choices appear below the main path:

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.

StringsString literals appear in apostrophes:

AbbreviationsIf 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.

In the above syntax, the following formats are valid:

• SHOW CONTROLS

• SHOW CONTROL

LoopsA 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:

JC01A010SHAREREAD

ACCESS

JC01A004

'msgtext '

FE0CA042

SHOW

CONTROLCONTROLS

JC01B012

(

, 4

cname )

, 3

Page 178: Teradata FastLoad Reference

Appendix A: How to Read Syntax DiagramsSyntax Diagram Conventions

178 Teradata FastLoad Reference

Read loops from right to left.

The following conventions apply to loops:

ExcerptsSometimes 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:

IF... THEN...

there is a maximum number of entries allowed

the number appears in a circle on the return path.

In the example, you may type cname a maximum of 4 times.

there is a minimum number of entries required

the number appears in a square on the return path.

In the example, you must type at least three groups of column names.

a separator character is required between entries

the character appears on the return path.

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.

LOCKING excerpt

where_cond

A

cname

excerpt

JC01A014

A

HAVING con

,

col_pos

,

Page 179: Teradata FastLoad Reference

Appendix A: How to Read Syntax DiagramsSyntax Diagram Conventions

Teradata FastLoad Reference 179

Multiple Legitimate PhrasesIn a syntax diagram, it is possible for any number of phrases to be legitimate:

In this example, any of the following phrases are legitimate:

• dbname

• DATABASE dbname

• tname

• TABLE tname

• vname

• VIEW vname

Sample Syntax Diagram

JC01A016

DATABASEdbname

TABLEtname

VIEWvname

JC01A018

viewnameCREATE VIEW AScname

A

C

CV

,

LOCKINGLOCK

ACCESSADATABASE

dbname

TABLEtname

VIEWvname

FORIN

BSHAREREADWRITE

EXCLUSIVEEXCL

MODE

FROMB SEL C.aname

expr

,

tname

,

qual_cond

qual_cond

WHERE cond

cname

,

col_pos

,GROUP BY

HAVING cond ;

Page 180: Teradata FastLoad Reference

Appendix A: How to Read Syntax DiagramsSyntax Diagram Conventions

180 Teradata FastLoad Reference

Diagram IdentifierThe 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.

Page 181: Teradata FastLoad Reference

Teradata FastLoad Reference 181

APPENDIX B

Multifile Teradata FastLoad Job ScriptExamples

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 Teradata Database Release: 14.10.00.99**** 11:20:51 Teradata Database Version: 14.10.00.99**** 11:20:51 Number of AMPs available: 4**** 11:20:51 Current CLI or RDBMS allows maximum row size: 64K**** 11:20:51 Character set for this job: ASCII

Page 182: Teradata FastLoad Reference

Appendix B: Multifile Teradata FastLoad Job Script ExamplesFirst Output File

182 Teradata FastLoad Reference

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 : 1**** 11:20:52 Ending record number set to : 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;

Page 183: Teradata FastLoad Reference

Appendix B: Multifile Teradata FastLoad Job Script ExamplesFirst Output File

Teradata FastLoad Reference 183

**** 11:20:53 FDL4803 DEFINE statement processed

0010 BEGIN LOADING FL0020 ERRORFILES FL0020e1,FL0020e2 checkpoint 100;

**** 11:20:53 Number of FastLoad sessions requested = 2**** 11:20:53 Number of FastLoad sessions connected = 2**** 11:20:53 FDL4808 LOGON successful**** 11:20:53 Number of AMPs available: 4**** 11:20:53 BEGIN LOADING COMPLETE

0011 SHOW;

FILE = FDAT02 FIELD1 OFFSET = 0 LEN = 4 INTEGER FIELD2 OFFSET = 4 LEN = 10 CHAR TOTAL RECORD LENGTH = 14

=================================================================== = = = Insert Phase = = = ===================================================================

0012 INSERT INTO FL0020(A,B) VALUES (:field1,:FIELD2);

**** 11:20:53 Number of recs/msg: 3382**** 11:20:53 Starting to send to RDBMS with record 1**** 11:20:53 Sending row 10**** 11:20:53 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 OFFSET = 0 LEN = 4 INTEGER FIELD2 OFFSET = 4 LEN = 10 CHAR TOTAL RECORD LENGTH = 14

0014 LOGOFF;

=================================================================== = = = Logoff/Disconnect = = = ===================================================================

**** 11:20:54 Logging off all sessions**** 11:20:55 Total processor time used = '0.171601 Seconds' . Start : Fri Sep 21 11:20:51 2012 . End : Fri Sep 21 11:20:55 2012

Page 184: Teradata FastLoad Reference

Appendix B: Multifile Teradata FastLoad Job Script ExamplesSecond Output File

184 Teradata FastLoad Reference

. 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 Teradata Database Release: 14.10.00.99**** 11:23:09 Teradata Database Version: 14.10.00.99**** 11:23:09 Number of AMPs available: 4**** 11:23:09 Current CLI or RDBMS allows maximum row size: 64K**** 11:23:09 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

Page 185: Teradata FastLoad Reference

Appendix B: Multifile Teradata FastLoad Job Script ExamplesSecond Output File

Teradata FastLoad Reference 185

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: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 : 201**** 11:23:09 Ending record number set to : 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 Number of FastLoad sessions requested = 10**** 11:23:10 Number of FastLoad sessions connected = 4**** 11:23:10 FDL4808 LOGON successful**** 11:23:10 Number of AMPs available: 4**** 11:23:10 BEGIN LOADING COMPLETE

0011 SHOW;

FILE = FDAT02 FIELD1 OFFSET = 0 LEN = 4 INTEGER

Page 186: Teradata FastLoad Reference

Appendix B: Multifile Teradata FastLoad Job Script ExamplesThird Output File

186 Teradata FastLoad Reference

FIELD2 OFFSET = 4 LEN = 10 CHAR TOTAL RECORD LENGTH = 14

=================================================================== = = = Insert Phase = = = ===================================================================

0012 INSERT INTO FL0020(A,B) VALUES (:field1,:FIELD2);

**** 11:23:10 Number of recs/msg: 3382**** 11:23:10 Starting to send to RDBMS with record 201**** 11:23:10 Sending row 210**** 11:23:10 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 OFFSET = 0 LEN = 4 INTEGER FIELD2 OFFSET = 4 LEN = 10 CHAR TOTAL RECORD LENGTH = 14

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 = = = ===================================================================

===================================================================

Page 187: Teradata FastLoad Reference

Appendix B: Multifile Teradata FastLoad Job Script ExamplesThird Output File

Teradata FastLoad Reference 187

= = = 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 Teradata Database Release: 14.10.00.99**** 12:12:03 Teradata Database Version: 14.10.00.99**** 12:12:03 Number of AMPs available: 4**** 12:12:03 Current CLI or RDBMS allows maximum row size: 64K**** 12:12:03 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;

Page 188: Teradata FastLoad Reference

Appendix B: Multifile Teradata FastLoad Job Script ExamplesThird Output File

188 Teradata FastLoad Reference

**** 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 : 201**** 12:12:04 Ending record number set to : 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 Number of FastLoad sessions requested = 10**** 12:12:04 Number of FastLoad sessions connected = 4**** 12:12:04 FDL4808 LOGON successful**** 12:12:05 Number of AMPs available: 4**** 12:12:05 BEGIN LOADING COMPLETE

0011 SHOW;

FILE = FDAT02 FIELD1 OFFSET = 0 LEN = 4 INTEGER FIELD2 OFFSET = 4 LEN = 10 CHAR TOTAL RECORD LENGTH = 14

=================================================================== = = = Insert Phase = = = ===================================================================

0012 INSERT INTO FL0020(A,B) VALUES (:field1,:FIELD2);

**** 12:12:05 Number of recs/msg: 3382**** 12:12:05 Starting to send to RDBMS with record 201**** 12:12:05 Sending row 210**** 12:12:05 Finished sending rows to the RDBMS

Page 189: Teradata FastLoad Reference

Appendix B: Multifile Teradata FastLoad Job Script ExamplesThird Output File

Teradata FastLoad Reference 189

**** 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 OFFSET = 0 LEN = 4 INTEGER FIELD2 OFFSET = 4 LEN = 10 CHAR TOTAL RECORD LENGTH = 14

=================================================================== = = = End Loading Phase = = = ===================================================================

0014 END LOADING;

**** 12:12:05 END LOADING COMPLETE

Total Records Read = 210 - skipped by RECORD command = 200 - sent to the RDBMS = 10 Total Error Table 1 = 0 ---- Table has been dropped Total Error Table 2 = 0 ---- Table has been dropped Total Inserts Applied = 10 Total Duplicate Rows = 0

Start: Fri Sep 21 12:12:05 2012 End : 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

Page 190: Teradata FastLoad Reference

Appendix B: Multifile Teradata FastLoad Job Script ExamplesThird Output File

190 Teradata FastLoad Reference

Page 191: Teradata FastLoad Reference

Teradata FastLoad Reference 191

APPENDIX C

INMOD and Notify Exit RoutineExamples

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 ExampleThe 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. *

Page 192: Teradata FastLoad Reference

Appendix C: INMOD and Notify Exit Routine Examplesz/OS

192 Teradata FastLoad Reference

* * * 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 EPDC AL1(31) DEFINE EP LENGTHDC CL9’BULKIN ’ DEFINEDC CL9’&SYSDATE’ ENTRYDC CL8’ MVS ’ POINTDC 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) * * * * *

Page 193: Teradata FastLoad Reference

Appendix C: INMOD and Notify Exit Routine Examplesz/OS

Teradata FastLoad Reference 193

* 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 OPENNOOPEN 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 RECORDINCREC 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

SPACECLEANUP 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 0R1 EQU 1R2 EQU 2R3 EQU 3R4 EQU 4R5 EQU 5R6 EQU 6R7 EQU 7R8 EQU 8R9 EQU 9R10 EQU 10

Page 194: Teradata FastLoad Reference

Appendix C: INMOD and Notify Exit Routine Examplesz/OS

194 Teradata FastLoad Reference

R11 EQU 11R12 EQU 12R13 EQU 13R14 EQU 14R15 EQU 15

EJECT * * DATA STRUCTURES AND VARIABLES *

SPACESAVEAREA DC 18F’0’ SAVE AREASAMPNUM DC F’0’ISOPEN DC XL1’00’ OPEN FILE INDICATOR

SPACE 10INDATA DCB DDNAME=INDATA,MACRF=(GM),DSORG=PS,EODAD=EOFPREBUF DSECTPRECODE DS FPRELEN DS FROWSIZE EQU 31774 MAXIMUM ROW SIZE PREREC DS 0XL(ROWSIZE)

DCBD DEVD=DA,DSORG=PS END

COBOL INMOD ExampleThe 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).

Page 195: Teradata FastLoad Reference

Appendix C: INMOD and Notify Exit Routine Examplesz/OS

Teradata FastLoad Reference 195

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

ELSEDISPLAY ’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.

Page 196: Teradata FastLoad Reference

Appendix C: INMOD and Notify Exit Routine Examplesz/OS

196 Teradata FastLoad Reference

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 ExampleThe 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;

Page 197: Teradata FastLoad Reference

Appendix C: INMOD and Notify Exit Routine ExamplesUNIX OS

Teradata FastLoad Reference 197

READ FILE (EXPORT) INTO (CCDB_REC); IFEOF = 1THEN 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 ExampleRefer 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 INMODFollowing 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* *

Page 198: Teradata FastLoad Reference

Appendix C: INMOD and Notify Exit Routine ExamplesUNIX OS

198 Teradata FastLoad Reference

* 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 401#define EM_OK 0

#define NUMROWS 100000#define ROWSIZE 64000

Page 199: Teradata FastLoad Reference

Appendix C: INMOD and Notify Exit Routine ExamplesUNIX OS

Teradata FastLoad Reference 199

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);}

Page 200: Teradata FastLoad Reference

Appendix C: INMOD and Notify Exit Routine ExamplesUNIX OS

200 Teradata FastLoad Reference

/*************************************************************************** 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);} /**************************************************************************

Page 201: Teradata FastLoad Reference

Appendix C: INMOD and Notify Exit Routine ExamplesUNIX OS

Teradata FastLoad Reference 201

* 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 I370Int32 _dynamn(tblptr)#elseInt32 BLKEXIT(tblptr)#endifchar *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; }

Page 202: Teradata FastLoad Reference

Appendix C: INMOD and Notify Exit Routine ExamplesUNIX OS

202 Teradata FastLoad Reference

return(result);}

BLKEXITR.C Sample INMODFollowing 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:**

Page 203: Teradata FastLoad Reference

Appendix C: INMOD and Notify Exit Routine ExamplesUNIX OS

Teradata FastLoad Reference 203

* 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 401#define EM_OK 0

#define NUMROWS 100000#define ROWSIZE 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;

Page 204: Teradata FastLoad Reference

Appendix C: INMOD and Notify Exit Routine ExamplesUNIX OS

204 Teradata FastLoad Reference

/*************************************************************************** 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)

Page 205: Teradata FastLoad Reference

Appendix C: INMOD and Notify Exit Routine ExamplesUNIX OS

Teradata FastLoad Reference 205

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) {

Page 206: Teradata FastLoad Reference

Appendix C: INMOD and Notify Exit Routine ExamplesUNIX OS

206 Teradata FastLoad Reference

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.**************************************************************************/

Page 207: Teradata FastLoad Reference

Appendix C: INMOD and Notify Exit Routine ExamplesUNIX OS

Teradata FastLoad Reference 207

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 I370Int32 _dynamn(tblptr)#elseInt32 BLKEXIT(tblptr)#endifchar *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; }

Page 208: Teradata FastLoad Reference

Appendix C: INMOD and Notify Exit Routine ExamplesAll Platforms

208 Teradata FastLoad Reference

return(result);}

All Platforms

Notify Exit Routine ExampleThe 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

Page 209: Teradata FastLoad Reference

Appendix C: INMOD and Notify Exit Routine ExamplesAll Platforms

Teradata FastLoad Reference 209

** 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 WIN32typedef unsigned __int64 UInt64 ; /* DR141961 */#elsetypedef unsigned long long UInt64 ; /* DR141961 */#endif/* DR 96206 <-- */

typedef enum { NFEventInitialize = 0 , NFEventFileInmodOpen = 1 , NFEventPhaseIBegin = 2 , NFEventCheckPoint = 3 , NFEventPhaseIEnd = 4 , NFEventPhaseIIBegin = 5 , NFEventPhaseIIEnd = 6 , NFEventDropErrTableI = 7 , NFEventDropErrTableII = 8 , NFEventDBSRestart = 9 , NFEventCLIError = 10 , NFEventDBSError = 11 , NFEventExit = 12 , /* DR141961 ==> */ NFEventCheckPoint64 = 13 , NFEventPhaseIEnd64 = 14 , NFEventPhaseIIEnd64 = 15 , NFEventDropErrTableI64 = 16 , NFEventDropErrTableII64= 17 , /* DR141961 <== */ /* SA-28595 ==> */ NFEventInitializeEON = 18 , NFEventPhaseIBeginEON = 19 /* SA-28595 <== */} NfyFLDEvent;

#define ID_FASTLOAD 1#define ID_MULTILOAD 2#define ID_FASTEXPORT 3

Page 210: Teradata FastLoad Reference

Appendix C: INMOD and Notify Exit Routine ExamplesAll Platforms

210 Teradata FastLoad Reference

#define ID_BTEQ 4#define ID_TPUMP 5

#define MAXVERSIONIDLEN 32#define MAXUTILITYNAMELEN 32#define MAXUSERNAMELEN 129 /* DR117582 */ /* SA-28595 */#define MAXUSERSTRLEN 80#define MAXTABLENAMELEN 129 /* DR117582 */ /* SA-28595 */#define MAXFILENAMELEN 256#define MAXDBASENAMELEN 129 /* DR117582 */ /* DR109902 */ /* SA-28595 */#define MAXUINT64 24 /* 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;

Page 211: Teradata FastLoad Reference

Appendix C: INMOD and Notify Exit Routine ExamplesAll Platforms

Teradata FastLoad Reference 211

} 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;

Page 212: Teradata FastLoad Reference

Appendix C: INMOD and Notify Exit Routine ExamplesAll Platforms

212 Teradata FastLoad Reference

} 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)#elseInt32 _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,

Page 213: Teradata FastLoad Reference

Appendix C: INMOD and Notify Exit Routine ExamplesAll Platforms

Teradata FastLoad Reference 213

" 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",

Page 214: Teradata FastLoad Reference

Appendix C: INMOD and Notify Exit Routine ExamplesAll Platforms

214 Teradata FastLoad Reference

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,

Page 215: Teradata FastLoad Reference

Appendix C: INMOD and Notify Exit Routine ExamplesAll Platforms

Teradata FastLoad Reference 215

"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*******************************************************************************/

Page 216: Teradata FastLoad Reference

Appendix C: INMOD and Notify Exit Routine ExamplesAll Platforms

216 Teradata FastLoad Reference

Page 217: Teradata FastLoad Reference

Teradata FastLoad Reference 217

APPENDIX D

Compile, Link, and Execute INMODand 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

AssemblerINMOD 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.

Page 218: Teradata FastLoad Reference

Appendix D: Compile, Link, and Execute INMOD and Notify Exit Routinesz/OS

218 Teradata FastLoad Reference

ExampleThe 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; $$

Page 219: Teradata FastLoad Reference

Appendix D: Compile, Link, and Execute INMOD and Notify Exit Routinesz/OS

Teradata FastLoad Reference 219

//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##

COBOLINMOD 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.

ExampleThe 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

Page 220: Teradata FastLoad Reference

Appendix D: Compile, Link, and Execute INMOD and Notify Exit Routinesz/OS

220 Teradata FastLoad Reference

//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:

• Contain the entry point name _dynamn

Page 221: Teradata FastLoad Reference

Appendix D: Compile, Link, and Execute INMOD and Notify Exit Routinesz/OS

Teradata FastLoad Reference 221

• 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.

ExampleThe 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## //*

Page 222: Teradata FastLoad Reference

Appendix D: Compile, Link, and Execute INMOD and Notify Exit Routinesz/OS

222 Teradata FastLoad Reference

//*

//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.

ExampleThe 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.

Page 223: Teradata FastLoad Reference

Appendix D: Compile, Link, and Execute INMOD and Notify Exit Routinesz/OS

Teradata FastLoad Reference 223

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;

Page 224: Teradata FastLoad Reference

Appendix D: Compile, Link, and Execute INMOD and Notify Exit RoutinesIBM C or C++ INMODs

224 Teradata FastLoad Reference

$$ //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

Page 225: Teradata FastLoad Reference

Appendix D: Compile, Link, and Execute INMOD and Notify Exit RoutinesUNIX OS

Teradata FastLoad Reference 225

UNIX OS

SPARC Systems Running Oracle SolarisUse 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:

where

Opteron Systems Running Oracle SolarisUse 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:

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

2409A051

cc -G -o shared-object-namesourcefile-KPIC

2409A055

sourcefile.c -o shared-object-name -G -dycc

Page 226: Teradata FastLoad Reference

Appendix D: Compile, Link, and Execute INMOD and Notify Exit RoutinesUNIX OS

226 Teradata FastLoad Reference

HP-UX PA RISCUse 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

Link Syntax

where

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

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

���������

-D_HPUX_SOURCE-Aa +zcc +u1 -c sourcefile.c

ld -b objectfile.o -o shared-object-name

2411A002

Page 227: Teradata FastLoad Reference

Appendix D: Compile, Link, and Execute INMOD and Notify Exit RoutinesUNIX OS

Teradata FastLoad Reference 227

HP-UX ItaniumUse the following syntax examples to compile and link a C INMOD on an HP-UX Itanium-based client.

Compile Syntax

where

-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

Syntax Element Description

Syntax Element Description

cc Invokes the native UNIX C compiler

+u1 Is a compiler option that allows pointers to access non-natively aligned data

2409A057

inmod.c +u1cc -D_REENTRANT +DD64 -c

Page 228: Teradata FastLoad Reference

Appendix D: Compile, Link, and Execute INMOD and Notify Exit RoutinesUNIX OS

228 Teradata FastLoad Reference

Link Syntax

where

LinuxUse 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

-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

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.

Syntax Element Description

2409A056

inmod.o inmod.so -nld -b -lc -o

2409B023

gcc sourcefile.c-I/usr/include -shared -fPIC-m32

-o shared-object-name

Page 229: Teradata FastLoad Reference

Appendix D: Compile, Link, and Execute INMOD and Notify Exit RoutinesUNIX OS

Teradata FastLoad Reference 229

where:

z/Linux

z/LinuxTo 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:

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

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.

���������

������� ��� ������������������������������������������������������������������������ !�"�����

Page 230: Teradata FastLoad Reference

Appendix D: Compile, Link, and Execute INMOD and Notify Exit RoutinesWindows

230 Teradata FastLoad Reference

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.

Page 231: Teradata FastLoad Reference

Teradata FastLoad Reference 231

APPENDIX E

User-Defined-Typesand 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.

Page 232: Teradata FastLoad Reference

Appendix E: User-Defined-Types and User-Defined-MethodsUser-Defined-Types and User-Defined-Methods

232 Teradata FastLoad Reference

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 FastLoadTeradata 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 TypesThe “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 ExampleFor 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.

Page 233: Teradata FastLoad Reference

Appendix E: User-Defined-Types and User-Defined-MethodsUser-Defined-Types and User-Defined-Methods

Teradata FastLoad Reference 233

Inserting UDTs with FastLoadTeradata 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 FastLoadUDTs cannot be retrieved with FastLoad

Retrieving UDT Metadata with FastLoadUDT Metadata cannot be retrieved with FastLoad.

Page 234: Teradata FastLoad Reference

Appendix E: User-Defined-Types and User-Defined-MethodsUser-Defined-Types and User-Defined-Methods

234 Teradata FastLoad Reference

Page 235: Teradata FastLoad Reference

Teradata FastLoad Reference 235

Glossary

AABORT: 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.

Page 236: Teradata FastLoad Reference

Glossary

236 Teradata FastLoad Reference

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.

BBTEQ: 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.

Ccapture: 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.

Ddatabase: 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

Page 237: Teradata FastLoad Reference

Glossary

Teradata FastLoad Reference 237

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: Database Administrator

DD: 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.

Page 238: Teradata FastLoad Reference

Glossary

238 Teradata FastLoad Reference

EEBCDIC: 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: A period of time when DWM can execute scheduled requests that are waiting to run.

Exit Routines: Specifies a predefined action to be performed whenever certain significant events occur during a MultiLoad job.

FFastExport: 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.

Ggateway: 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.

Page 239: Teradata FastLoad Reference

Glossary

Teradata FastLoad Reference 239

globally distributed objects (GDO): A data structure that is shared by all of the virtual processors in the Teradata Database system configuration.

Iimport: 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

JJCL: 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

Page 240: Teradata FastLoad Reference

Glossary

240 Teradata FastLoad Reference

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.

LLAN: 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.

Page 241: Teradata FastLoad Reference

Glossary

Teradata FastLoad Reference 241

loner value: A value that has a frequency greater than the total number of table rows divided by the maximum interval times 2.

Mmacro: 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.

Nname: 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.

Page 242: Teradata FastLoad Reference

Glossary

242 Teradata FastLoad Reference

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.

Oobject: 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: In object-oriented programming, refers to a function that implements a method.

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.

Pparameter: 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.

Page 243: Teradata FastLoad Reference

Glossary

Teradata FastLoad Reference 243

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.

Page 244: Teradata FastLoad Reference

Glossary

244 Teradata FastLoad Reference

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: The rules for the format, sequence and relative timing of messages exchanged on a network.

Qquery 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.

RRecords: When using the Teradata MultiLoad utility, both formatted and unformatted records are accepted for loading. A formatted record, in the Teradata Database world, consists

Page 245: Teradata FastLoad Reference

Glossary

Teradata FastLoad Reference 245

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

Page 246: Teradata FastLoad Reference

Glossary

246 Teradata FastLoad Reference

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.

Sscheduled 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.

Page 247: Teradata FastLoad Reference

Glossary

Teradata FastLoad Reference 247

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.

Ttable: 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

Page 248: Teradata FastLoad Reference

Glossary

248 Teradata FastLoad Reference

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.

UUDF 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.

Page 249: Teradata FastLoad Reference

Glossary

Teradata FastLoad Reference 249

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.

VVarbyte: 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): One of the primary operating systems for large IBM computers.

VM/CMS Virtual Machine/Conversational Monitor System

Page 250: Teradata FastLoad Reference

Glossary

250 Teradata FastLoad Reference

Wworkgroups: 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.

XXML: 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.

Zz/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.

Page 251: Teradata FastLoad Reference

Teradata FastLoad Reference 251

Index

Symbols.* default VALUES clause 125* (asterisk character) 151

Numerics3944 error message 59

Aabort, defined 235access privileges, required 126accounts, defined 235acctid specification 134administrator, defined 235ANSI/SQL DateTime data types 57

DEFINE command 108INSERT statement 126specifications 57, 108

ANSIDATE keyword 96API, defined 235ASCII

character set code 55specification 161

Assembler program examplescompiling, linking and executing

on z/OS systems 217INMOD routine 191

AXSMODcharacter set 57checkpoint support 58command

defined 25syntax 89

BBEGIN LOADING command

defined 25example 94syntax 91

BINARY specification 155BLKEXIT.C INMOD routine, calling 71BUFSIZE, configuration file specification 53bypass-label (BPL) tapes, not supported 24BYTE data type specification 104BYTEINT data type specification 105

Cc specification 155, 156character set

ASCII 55AXSMOD 57determining 162EBCDIC 55kanji 55programming considerations 55supported 19Unicode 57UTF-16 57UTF-8 57

CHARACTERS data type specification 105character-to-date data conversions 20character-to-numeric data conversions 20CHARSET

configuration file specification 53CHECKPOINT keyword 92, 93checkpoints

description 20internal 117trade-offs 58with access modules 58

CLEAR commanddefined 25syntax 95using with HELP TABLE commands 124

cname specificationINSERT statement 125

COBOL program examplescompiling, linking and executing

on z/OS systems 219INMOD routine 194

commandsdefined 24functions 24OS command specification 142syntax, see individual commands

comments 58compiling and linking routines

HP-UX 226Linux 228Opteron 225Solaris 229UNIX OS 225, 226, 227, 229

Page 252: Teradata FastLoad Reference

Index

252 Teradata FastLoad Reference

z/Linux 229concatenated data sets, not supported 24concurrent load utility tasks, restrictions and limitations 59configuration file 53

contents 53file name and location 53optional specification 33overriding internal utility defaults 52processing by the FastLoad utility 54specifications 52using 52

configuration parametersoverridden by runtime parameters 53

BUFSIZE 36CHARSET 37ERRORLOG 38MAXSESS 38MINSESS 38SLEEP 38TENACITY 39VERBOSE 39

overridden by utility commands 53SESSIONS 151SET SESSION CHARSET 161SLEEP 167TENACITY 170

CREATE TABLE statementdefined 26

Ddata

formats 157handling, defined 24length field, input record 21transfer capabilities 19type specifications 99

data conversionscharacter-to-date 20character-to-numeric 20date-to-character 20example 59integer-to-decimal 20limiting factors 59numeric-to-numeric 20overview 20

data dictionary, defined 236data encryption

runtime option specification 45data manipulation, defined 237data types, ANSI/SQL DateTime 57DATABASE statement, defined 26DATAENCRYPTION

BEGIN LOADING command 92

configuration file setting 53datatype specification 98DATEFORM command

defined 25syntax 96

DateTime specifications 57table 108

date-to-character data conversions 20dbname specification

BEGIN LOADING command 91HELP TABLE command 123

DDNAME=filename data source specification 97, 99decimal

format 59zoned 20

DECIMAL data type specification 105DEFINE command

defined 25syntax 97using with HELP TABLE command 123using with INSERT statements 126

DELETE statement, defined 26delimiters, defined 237DISPLAY_ERRORS keyword specification 156DROP TABLE statement, defined 26duplicate rows

not inserted by the FastLoad utility 18, 60DWM

defined 237

EEBCDIC character set codes 55END LOADING command

defined 25syntax 117

end-loading phase 117end-of-record field, input record 22endrecordnumber specification 147ERRLIMIT command

defined 25syntax 119

error tablescorrecting errors recorded in 82dropped if empty 117format of 80multiple databases 91reusing table names 93

ERRORFILES keyword 91errorname1 specification 92, 93errors

correcting 80in the first error table 80in the second error table 82

Page 253: Teradata FastLoad Reference

Index

Teradata FastLoad Reference 253

data conversion 59error recording 79error table format 79, 93handling 78

NOTIFY implications 140insertion errors

limiting 119restarting after 119

specifying the ERRLIMIT value 60errortname1 specification 92errortname2 specification 93execution time frame, defined 238EXIT name specification 137, 138exit routines, creating for NOTIFY 140

FFastLoad job scripts

programming considerations 52checkpoint trade-offs 58data conversion factors 59defined triggers limitation 63nonunique index sorts 60range constraints 60record mode load anomaly 61referential integrity 63session limits 62space requirements and limitations 62

writing 72FastLoad utility

character set specifications 55data conversion capabilities 20data transfer capabilities 19file requirements 33file types supported 20formatted data 21input data formats 20input record fields 21invoking 33

in batch mode 34in interactive mode 34

operating features and capabilities 18operating modes 19overview 17programming considerations

character set specifications 55comments 58

restarting 147NOTIFY implications 140

starting 135terminating 47

abort 48normal 48

unformatted data 22

unsupported data sets and tapes 24variable-length text 24

fielddefined 238values, inserting 126

fieldname specificationDEFINE command 97INSERT statement 125

file types supported 20FILE=filename data source specification 97, 99fileid specifications

RUN command 149usage rules for z/OS 149

FLOADCFG, configuration file name 53floadcfg.dat, configuration file name 53foreign key references 62formatted data 21FORMATTED keyword specification 155

Gglobal rule, defined 238GRAPHIC data type specifications 106

DEFINE command 103

HHELP command

defined 24syntax 121

HELP TABLE commanddefined 24syntax 123

HIGH specification 137hours specification 170

IIBM C program examples

compiling, linking and executingon z/OS systems 220

INMOD routine 197indicator

bit positions, illustration 94bytes field, input record 21

INDICATORS keyword 92, 94init-string specification 89INMOD routines and programs

Assembler program listing 191BLKEXIT.C, calling 71COBOL program listing 194compiling, linking and executing

Assembler on z/OS 217C on Windows 230COBOL on z/OS 219

Page 254: Teradata FastLoad Reference

Index

254 Teradata FastLoad Reference

IBM C on z/OS 220PL/I on z/OS 222

creating your own 72definition 64entry points 65examples 70FastLoad-to-INMOD interface 66IBM C program listing 197INMOD type specification 44INMOD-to-FastLoad interface 67PL/I program listing 196platforms and programming languages 64programming structure 65using 64

INMOD=name specification 99INMODRETURN

configuration file specification 53inner join, defined 239input

data fields, input record 21record fields 21

INSERT statement 125defined 27

insertion errorslimiting 119restarting after 119

integer, CHECKPOINT specification 91, 92, 93INTEGERDATE keyword 96integer-to-decimal data conversions 20INTO tname specification 125invalid record numbers 148

JJIS, defined 240job scripts

example 73multifile example

first output file 181second output file 184third output file 186

programming considerations, error limits 60JOB, SCOPE parameter specification 138join index, restrictions 62join, defined 240

Kkanji character set codes 55KANJIEUC_0U specification 161KANJISJIS_0S specification 161

LLinux, compiling and linking routines 228

loading 63LOGDATA command syntax 129LOGMECH command syntax 130LOGOFF command

defined 24syntax 131

LOGON commanddefined 25syntax 133

LOW specification 137

Mmax, session specification 151maximum sessions 44MAXSESS 54MEDIUM specification 137merge join, defined 241min, sessions specification 151minimum sessions 44MINSESS

configuration file setting 53description 54

minutes specification 167MSG string specification 138MSG string specification, NOTIFY command 138multifile FastLoad jobs

output file examplesfirst output file 181second output file 184third output file 186

running 75multiple databases 91MULTISET tables

duplicate rows not inserted 18, 60using the MultiLoad utility 31

Nname specification

AXSMOD command 89DEFINE command 97NOTIFY command 138

name, defined 241Named Pipes Access Module 89nested join, defined 241new-line characters in ASCII text files, accommodating 22NFS. See Network File SystemNo Primary Index tables 63NOBLOCK parameter 138nonlabel (NL) tapes, not supported 24nonunique

index sorts 60secondary indexes 31

NoPI tables 63

Page 255: Teradata FastLoad Reference

Index

Teradata FastLoad Reference 255

NOSTOP keyword specification 156NOTIFY command

defined 25syntax 137

null, defined 242NULLIF option 98numeric fields 107numeric-to-numeric data conversions 20

OObject Access filter, defined 242OFF specification 137OLE DB Access Module 89operating modes, supported 19option specification 138order of preference, utility variables 53OS command, defined 25outer join, defined 242output buffer size specification 36owner, defined 242

Pparser, defined 242parsing engine (PE), defined 243password specification 133paused FastLoad jobs

definition 49restarting 49

after a database overfill 50after a system or FastLoad failure 49after a Teradata Database failure 50after an unrecoverable error 50factors affecting 51

performance group, defined 243PL/I program examples

compiling, linking and executingon z/OS systems 222

INMOD routine 196privileges, required 93procedures, defined 244product join, defined 243product version numbers 3profiles, defined 244

Qqueries, defined 244query analysis, defined 244query management, defined 244QUEUE option specification

description 138NOTIFY command 138, 139

QUIT command

defined 24syntax 145

Rrange constraints 60

examples 61types 60

RECORD commanddefined 25entering before INSERT statements 147syntax 147

record mode load anomaly 61record numbers, invalid 148redundant conversions

example 59supported 20

referential integrity 63request, defined 245required privileges

BEGIN LOADING command 93INSERT statement 126

restart log table 93restrictions and limitations, concurrent load tasks 59results

defined 245files 245tables 245

return codes 48RNAME parameter 138row, defined 245RowID join, defined 245rule, defined 246RUN command

defined 26executing 150nesting 150syntax 149

Ssample procedure, invoking FastLoad

on z/OS systems 46scheduled requests, defined 246SCOPE parameter 138secondary indexes

not supported by the FastLoad utility 18, 19, 63using the MultiLoad utility 31

semicolon charactersFastLoad commands 87SQL statements 87

separator, defined 246session character set, AXSMOD 57sessions 152

control commands, defined 24

Page 256: Teradata FastLoad Reference

Index

256 Teradata FastLoad Reference

defined 246limits 62, 153maximum 44minimum 44number of 135

invalid 153reported 136, 153

optimal number 152SESSIONS command

defined 25entering before the LOGON command 152syntax 151

SET RECORD commanddefined 26syntax 154

SET SESSION CHARSET commanddefined 26syntax 161

SHOW commanddefined 25syntax 163

SHOW TABLE statement 126SHOW VERSIONS command

defined 25syntax 165

single sign-onLOGON syntax 133

SLEEPconfiguration file specification 53defined 25runtime option specification 38, 44syntax 167

software releases, supported 3Solaris, compiling and linking routines 225, 229space requirements and limitations 62SQL, defined 246standard

error file 33input file 33

name specification 43output file 33

name specification 44startrecordnumber specification 147statement, defined 247status codes

FastLoad-to-INMOD interface 66INMOD-to-FastLoad interface 67

stored procedures, defined 247string specification 138supervisory user, defined 247syntax and use 125Syntax, how to read 175SYSTEM/SYSTEMS specification 138

Ttable definitions, using to define data 107table, defined 247TASM 25tdpid specification 134TENACITY

commanddefined 25syntax 170

configuration file specification 53runtime option specification 39, 45

Teradata SQL statementsCREATE TABLE 26DATABASE 26DELETE 26DROP TABLE 26INSERT 27, 125using BTEQ to enter 117

terminating FastLoad 47termination return codes 48TEXT

string specification 138TEXT keyword specification 155THRU

endrecordnumber specification 148keyword, RECORD command 147

title, defined 248tname specification

BEGIN LOADING command 91HELP TABLE command 123INSERT statement 125

transaction, defined 248triggers, defined limitation 63troubleshooting 173type, defined 248

Uunformatted

data 22records 158

UNFORMATTED keyword specification 155Unicode

character sets 41, 42, 57data, using 127

UNIX OSHP-UX Itanium 227HP-UX PA RISC 226Linux 228SPARC Systems Running Oracle Solaris 225z/Linux 229

unsupported data sets and tapes 24user 249user groups, defined 249

Page 257: Teradata FastLoad Reference

Index

Teradata FastLoad Reference 257

username specification 133UTF-16

character sets 41, 42, 57defined 249

UTF-8character sets 41, 42defined 249

utility variables, order of preference 53

Vvalue, NULLIF specification 97VALUES keyword 125VARGRAPHIC data type specification 106variable-length

fields, using 159text 24

VARTEXTkeyword specification 155records 158

version numbers 3VERSIONS keyword 165

WWebSphere MQ Access Module for Teradata

client version 89server version 89

workgroups, defined 250workload limits rule, defined 250

Zz/Linux, compiling and linking routines 229z/OS program examples

for creating and using INMOD routinesin Assembler 217in COBOL 219in IBM C 220in PL/I 222

for invoking FastLoad 46INMOD routines

using Assembler 191using COBOL 194using IBM C 197using PL/I 196

zoned decimal 59formats, supported 20

Page 258: Teradata FastLoad Reference

Index

258 Teradata FastLoad Reference