アセンブラで記述されたINMODルーチンは、他のロード モジュールとリンク編集する必要はありません。
z/OSでアセンブラのINMODルーチンを作成し使用する手順
- INMODルーチンのソース ファイルを準備します。
- INMODプログラムをコンパイルします。
- Teradata FastLoadユーティリティを呼び出してINMODルーチンを実行します。
例
次の例のINMODルーチンは、入力データ ソースからレコードを読み取り、そのレコードの前に4バイトの整数フィールドを追加します。新しいフィールドには、1から入力レコードの総数までの、連番レコードが入ります。
//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;
$$
//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
##