Teradata-bteq

提供:Dev Guides
移動先:案内検索

Teradata-BTEQ

BTEQユーティリティは、Teradataの強力なユーティリティであり、バッチモードとインタラクティブモードの両方で使用できます。 DDLステートメント、DMLステートメントの実行、マクロおよびストアドプロシージャの作成に使用できます。 BTEQは、フラットファイルからTeradataテーブルにデータをインポートするために使用でき、テーブルからファイルまたはレポートにデータを抽出するためにも使用できます。

BTEQ用語

以下は、BTEQスクリプトで一般的に使用される用語のリストです。

  • LOGON -Teradataシステムにログインするために使用されます。
  • ACTIVITYCOUNT -前のクエリによって影響を受けた行の数を返します。
  • ERRORCODE -前のクエリのステータスコードを返します。
  • DATABASE -デフォルトのデータベースを設定します。
  • LABEL -一連のSQLコマンドにラベルを割り当てます。
  • RUN FILE -ファイルに含まれるクエリを実行します。
  • GOTO -コントロールをラベルに転送します。
  • LOGOFF -データベースからログオフし、すべてのセッションを終了します。
  • IMPORT -入力ファイルのパスを指定します。
  • EXPORT -出力ファイルのパスを指定し、エクスポートを開始します。

次に、BTEQスクリプトのサンプルを示します。

.LOGON 192.168.1.102/dbc,dbc;
   DATABASE tduser;

   CREATE TABLE employee_bkup (
      EmployeeNo INTEGER,
      FirstName CHAR(30),
      LastName CHAR(30),
      DepartmentNo SMALLINT,
      NetPay INTEGER
   )
   Unique Primary Index(EmployeeNo);

   .IF ERRORCODE <> 0 THEN .EXIT ERRORCODE;

   SELECT * FROM
   Employee
   Sample 1;
   .IF ACTIVITYCOUNT <> 0 THEN .GOTO InsertEmployee;

   DROP TABLE employee_bkup;

   .IF ERRORCODE <> 0 THEN .EXIT ERRORCODE;

   .LABEL InsertEmployee
   INSERT INTO employee_bkup
   SELECT a.EmployeeNo,
      a.FirstName,
      a.LastName,
      a.DepartmentNo,
      b.NetPay
   FROM
   Employee a INNER JOIN Salary b
   ON (a.EmployeeNo = b.EmployeeNo);

   .IF ERRORCODE <> 0 THEN .EXIT ERRORCODE;
.LOGOFF;

上記のスクリプトは、次のタスクを実行します。

  • Teradata Systemにログインします。
  • デフォルトのデータベースを設定します。
  • employee_bkupというテーブルを作成します。
  • Employeeテーブルから1つのレコードを選択して、テーブルにレコードがあるかどうかを確認します。
  • テーブルが空の場合、employee_bkupテーブルを削除します。
  • レコードをemployee_bkupテーブルに挿入するLabel InsertEmployeeにコントロールを転送します
  • ERRORCODEをチェックして、各SQLステートメントに続いて、ステートメントが成功したことを確認します。
  • ACTIVITYCOUNTは、前のSQLクエリによって選択/影響を受けたレコードの数を返します。