IBM Cで作成するINMODおよび通知出口ルーチンは、次のようにしなければなりません。
- 入口点名_dynamnを含める。
- z/OSロード ライブラリ ファイルとして格納する。
z/OSでIBM CのINMODまたは通知出口ルーチンを作成し使用する手順
- INMODルーチンのソース ファイルを準備します。
- INMODルーチンをコンパイルします。
- INMODプログラムをリンク編集し、結果をz/OSロード ライブラリ ファイルとして格納します。
- Teradata FastLoad ユーティリティを呼び出してINMODルーチンを実行します。
例
次の例のINMODルーチンは、入力ソースからデータを読み取り、それをTeradata FastLoadユーティリティに渡します。BTEQ1はデータベース上で表を作成し、BTEQ2は表から行を選択して、データが正しくロードされたかを調べます。
この基本的なプログラムを修正して、特定の基準に適合するレコードを選択したり、特定のフィールドを変換したり、その他の前処理機能を実行したりすることができます。
//* 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 ## //* //* //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