📜  Teradata BTEQ

📅  最后修改于: 2021-01-11 11:47:56             🧑  作者: Mango

Teradata BTEQ

Teradata BTEQ代表基本Teradata查询。它是一个命令驱动的实用程序,使用户可以与一个或多个Teradata数据库系统进行交互。

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

BTEQ条款

以下是BTEQ脚本中常用的一些术语。

  • 登录:用于登录Teradata系统。
  • ACTIVITYCOUNT:它返回受上一个查询影响的行数。
  • 错误代码:它返回上一个查询的状态代码。
  • 数据库:设置默认数据库。
  • 标签:它为一组SQL命令分配一个名称。
  • RUN FILE:它执行文件中包含的查询。
  • 转到:将控制权转移到标签。
  • 注销:它从数据库注销并终止所有会话。
  • 导入:它指定输入文件路径。
  • 导出:它指定输出文件路径并启动导出。

BTEQ局限性

Teradata BTEQ具有以下限制,例如:

  • 它可以两种方式以批处理或交互方式提交SQL。交互式用户可以发送SQL并在屏幕上获得答案。用户还可以从批处理脚本提交BTEQ作业,具有错误检查和条件逻辑,并允许在后台完成工作。
  • Teradata SQL Assistant( Queryman )以电子表格格式输出数据,其中使用BTEQ用户可以以报告格式获取输出。
  • BTEQ是用于导入和导出数据的出色工具。

汇入资料

BTEQ可以从源导入数据,并将其合并到SQL中以修改一个或多个表的内容。

IMPORT命令的语法:

.IMPORT  {FILE | DNAME = ,[SKIP=n]

汇出资料

可以使用Teradata中的SELECT将数据写入大型机或LAN连接的计算机。数据可以多种格式导出,例如:

  • 记录/数据模式:在此模式下,数据将以本机格式写入平面文件,即INTEGER数据将以4字节二进制字段写入。使用常规文本编辑器无法阅读和理解它。由.EXPORT DATA设置。
  • 字段/报告模式:这是BTEQ的默认模式。此BTEQ导出的输出包括字段,空白的列标题,并且可以使用文本编辑器来理解。由.EXPORT REPORT设置。
  • 指示器模式:类似于数据模式,但它还包含一个位图以识别NULL。这有助于将NULL值确认到另一个RDBMS中。并由.EXPORT INDICDATA设置。
  • DIF模式:允许用户从Teradata导出数据,该数据可直接用于电子表格应用程序(例如Excel,FoxPro和Lotus)。

以下是Teradata BTEQ脚本的示例。

LOGON 192.168.1.102/dbc,dbc; 
   DATABASE tduser;

   CREATE TABLE emp_bkup 
   ( 
      EmpId INTEGER, 
      FirstName CHAR(10), 
      LastName CHAR(10), 
      DepartmentNo SMALLINT, 
      NetPay INTEGER 
   )
   Unique Primary Index(EmpId);

   .IF ERRORCODE <> 0 THEN .EXIT ERRORCODE;
  
   SELECT * FROM  
   Emp
   Sample 1; 
   .IF ACTIVITYCOUNT <> 0 THEN .GOTO InsertEmp;  

   DROP TABLE emp_bkup;
  
   .IF ERRORCODE <> 0 THEN .EXIT ERRORCODE; 
 
   .LABEL InsertEmp 
   INSERT INTO emp_bkup 
   SELECT a.EmpId, 
      a.FirstName, 
      a.LastName, 
      a.DepartmentNo, 
      b.NetPay 
   FROM  
   Emp a INNER JOIN Salary b 
   ON (a.EmpId = b.EmpId);  

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

上面的Teradata BTEQ脚本在以下步骤中执行上述任务。

步骤1:登录Teradata系统。

步骤2:设置默认数据库。

步骤3:创建一个名为emp_bkup的表。

步骤4:从Emp表中选择一条记录,以检查该表是否包含任何记录。

步骤5:如果表为空,则删除emp_bkup表。

步骤6:将控件转移到Label InsertEmp,后者将记录插入emp_bkup表。

步骤7:然后,在每个SQL语句之后,检查ERRORCODE以确保该语句成功。

步骤8: ACTIVITYCOUNT返回上一个SQL查询选择/影响的记录数。