PL/I - FastLoad

Teradata® FastLoad リファレンス

Product
FastLoad
Release Number
17.10
Published
2021年6月
Language
日本語
Last Update
2021-09-23
dita:mapPath
ja-JP/ruk1608578422758.ditamap
dita:ditavalPath
ja-JP/ruk1608578422758.ditaval
dita:id
B035-2411
Product Category
Teradata Tools and Utilities
PL/Iで作成するINMODルーチンは、次のようにしなければなりません。
  • 入口点名DYNAMNを含める。
  • PLIAロード モジュールとリンク編集する。
  • z/OSロード ライブラリ ファイルとして格納する。
  • 'OPTIONS(MAIN)'を含める。

z/OSでPL/IのINMODルーチンを作成し使用する手順

  1. INMODルーチンのソース ファイルを準備します。
  2. INMODルーチンをコンパイルします。
  3. INMODプログラムを指定のロード モジュールとリンク編集し、結果をz/OSロード ライブラリ ファイルとして格納します。
  4. Teradata FastLoadユーティリティを呼び出してINMODルーチンを実行します。

次の例のINMODルーチンは、入力ソースからデータを読み取り、それをTeradata FastLoadユーティリティに渡します。BTEQ1はデータベース上で表を作成し、BTEQ2は表から行を選択して、データが正しくロードされたかを調べます。

この基本的なプログラムを修正して、特定の基準に適合するレコードを選択したり、特定のフィールドを変換したり、その他の前処理機能を実行したりすることができます。

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