Teradata - BTEQ

BTEQ 实用程序是 Teradata 中功能强大的实用程序,可用于批处理和交互模式。它可用于运行任何 DDL 语句、DML 语句、创建宏和存储过程。BTEQ 可用于将数据从平面文件导入 Teradata 表,也可用于将数据从表提取到文件或报告中。

BTEQ 术语

以下是 BTEQ 脚本中常用的术语列表。

  • LOGON − 用于登录 Teradata 系统。

  • ACTIVITYCOUNT − 返回受上一个查询影响的行数。

  • ERRORCODE −返回上一个查询的状态代码。

  • DATABASE − 设置默认数据库。

  • LABEL − 为 SQL 命令集分配标签。

  • RUN FILE − 执行文件中包含的查询。

  • GOTO − 将控制权转移给标签。

  • LOGOFF − 从数据库注销并终止所有会话。

  • IMPORT − 指定输入文件路径。

  • EXPORT − 指定输出文件路径并启动导出。

示例

Following is a sample BTEQ script.

.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 系统。

  • 设置默认数据库。

  • 创建一个名为 employee_bkup 的表。

  • 从 Employee 表中选择一条记录以检查该表是否有任何记录。

  • 如果表为空,则删除 employee_bkup 表。

  • 将控制权转移到标签 InsertEmployee,该标签将记录插入 employee_bkup 表

  • 在每个 SQL 语句之后检查 ERRORCODE 以确保语句成功。

  • ACTIVITYCOUNT 返回上一个 SQL 查询选择/影响的记录数。