17.10 - 変数 - MultiLoad

Teradata® MultiLoadリファレンス

Product
MultiLoad
Release Number
17.10
Release Date
2021年6月
Content Type
プログラミング リファレンス
Publication ID
B035-2409-061K-JPN
Language
日本語 (日本)

Teradata MultiLoadでは、以下の変数タイプ(事前定義システム変数、日付および時刻の変数、ロー数の変数、ユーティリティ変数など)がサポートされています。

事前定義のシステム変数

次の表は、サポートされる事前定義のシステム変数を示します。事前定義システム変数の先頭には必ず接頭辞&SYSが指定されます。このため、ユーザー定義のユーティリティ変数ではこの接頭辞は使用しないでください。 システム変数は参照のみできます。変更できません。

システム変数
変数名 説明
&SYSAPLYCNT [n] インポート ファイルnについて満たされた適用条件数。nが指定されていない場合、満たされた適用条件の累積数(すべてのインポート)がデフォルトで設定されます。
&SYSDATE yy/mm/dd形式の8文字から成る日付。
&SYSDATE4 yyyy/mm/dd形式の10文字から成る日付。
&SYSDAY 3桁の大文字の曜日指定。 MON、TUE、WED、THU、FRI、SAT、SUN
&SYSDELCNT [n] n番目のターゲット表から削除された行数。nが指定されていない場合、最初のターゲット表がデフォルトで設定されます。

nの最大値は5です。

&SYSETCNT [n] n番目のターゲット表に対するET表内の行数。Teradata MultiLoadは、ET表(別名:取得フェーズ エラー表)を使用して、Teradata MultiLoadインポート タスクの取得フェーズ中に検出されたデータ エラーを格納します。

nが指定されていない場合、最初のターゲット表がデフォルトで設定されます。nの最大値は5です。

&SYSINSCNT [n] n番目のターゲット表に挿入された行数。nが指定されていない場合、最初のターゲット表がデフォルトで設定されます。

nの最大値は5です。

&SYSNOAPLYCNT [n] インポート ファイルnに適用されなかったレコード数。nが指定されていない場合、適用されなかったレコードの累積数(すべてのインポート ファイル)がデフォルトで設定されます。
&SYSOS クライアントのオペレーティング システム。
  • z/OSの場合: z/OS、z/OS/SP、z/OS/ESA
  • UNIX
  • Win32
&SYSRC データベースからの最終応答の完了コード。
&SYSRCDCNT [n] インポート ファイルnから読み取られたレコード数。nが指定されていない場合、読み取られたレコードの累積数(すべてのインポート ファイル)がデフォルトで設定されます。
&SYSRJCTCNT [n] インポート ファイルnから拒否された候補レコード数。nが指定されていない場合、拒否された候補レコードの累積数(すべてのインポート)がデフォルトで設定されます。
&SYSTIME hh:mm:ss形式の8文字から成る時刻。
&SYSUPDCNT [n] n番目のターゲット表で更新された行数。

nが指定されていない場合、最初のターゲット表がデフォルトで設定されます。

nの最大値は5です。

&SYSUSER z/OSバッチのuserid。z/OSバッチがuseridを戻すのは、RACF、ACF2、Top Secretなどのセキュリティ パッケージがインストールされている場合に限ります。
&SYSUVCNT [n] n番目のターゲット表に対するUV表内の行数。Teradata MultiLoadは、UV表(別名:アプリケーション フェーズ エラー表)を使用して、Teradata MultiLoadのインポート タスクまたは削除タスクのアプリケーション フェーズ中に検出されたデータ エラーを格納します。

nが指定されていない場合、最初のターゲット表がデフォルトで設定されます。

nの最大値は5です。

日付と時刻の変数

以下に示す4つの日時変数は、Teradata MultiLoadの実行開始時点を反映します。
  • &SYSDAY
  • &SYSDATE
  • &SYSDATE4
  • &SYSTIME

Teradata MultiLoadの再始動操作後は元の値が維持されません。

値はすべて文字(char)データ タイプであるため、数値演算でこれらの値を参照しないでください。

行カウント変数

以下に示す5つのロー数の変数は、Teradata MultiLoadタスクごとに更新され、各ターゲット テーブルに対して行なわれた挿入、更新、および削除のロー数とエラー テーブルの数を問合わせることができます。
  • &SYSDELCNT[n]
  • &SYSETLCNT[n]
  • &SYSINSCNT[n]
  • &SYSUPDCNT[n]
  • &SYSUVCNT[n]

値はTeradata MultiLoadの再始動ログ テーブルに格納され、クライアント システムまたはデータベースの再始動後に復元されます。

これらの変数は、Teradata MultiLoadジョブ スクリプト内のEND MLOADコマンドの後、および後続のBEGIN MLOADコマンドの前で参照します。

ユーティリティ変数

Teradata MultiLoadでは、SETコマンドまたはACCEPTコマンドのいずれかを使用して設定したユーティリティ変数をサポートしています。

また、実行時のTeradata MultiLoadサポート環境についての情報を提供するいくつかのユーティリティ変数がTeradata MultiLoadに事前定義されています。ユーティリティ変数名には、変数の置換を使うためにアンパサンド(&)を先頭に付ける必要があります。

変数の置換

Teradata MultiLoadは、あらゆる文で変数の置換を実行します。アンパサンド(&)で始まる変数名がTeradata MultiLoadで検出されると、変数名はその変数の現在の値で置換されます。

次の表は、変数の置換に適用する規則ついて説明します。

変数の置換の規則
対象 規則
数値の変数値 使用可能であっても、置換の場合にはTeradata MultiLoadによって文字データ型に変換されます。
値の置換 次の場合に1回ずつ行なわれる。
  • 最初の走査
  • 文が解析される前

置換後の変数名にアンパサンドが付く結果となる場合、置換は実施されません。

アンパサンド文字 直後にもう1つアンパサンド文字が続く場合を除き、常にユーティリティ変数の最初の文字として解釈されます。これは、引用符付き文字列で使用される場合にもあてはまります。

(連続した2つのアンパサンド文字は、Teradata MultiLoadによって1つのアンパサンド テキスト文字に変換されます。)

ユーティリティ変数の参照 変数に出現する可能性のある空白以外の文字または文字列が後に続く場合は、変数とその文字との間にピリオドを入れる必要があります。この場合のピリオドはTeradata MultiLoadによって切り捨てられます。

例えば、&xというユーティリティ変数に値xyが指定され、直後に文字.abが続くような場合、xy.abという結果を得るためには、以下のような順序で変数と文字を指定する必要があります。

&x..ab

Teradata MultiLoadは、2つのピリオドを1つのピリオド テキスト文字に変換し、ユーティリティ変数の値と連結します。