Teradata BTEQ

2018-01-12 17:32 更新

BTEQ實(shí)用程序是Teradata中一個(gè)強(qiáng)大的實(shí)用程序,可在批處理和交互模式下使用。它可以用于運(yùn)行任何DDL語(yǔ)句,DML語(yǔ)句,創(chuàng)建宏和存儲(chǔ)過程。 BTEQ可用于將數(shù)據(jù)從平面文件導(dǎo)入到Teradata表中,并且還可用于將數(shù)據(jù)從表提取到文件或報(bào)告中。

BTEQ條款

以下是BTEQ腳本中常用的術(shù)語(yǔ)列表。

LOGON - 用于登錄Teradata系統(tǒng)。

ACTIVITYCOUNT - 返回受上一個(gè)查詢影響的行數(shù)。

ERRORCODE - 返回上一個(gè)查詢的狀態(tài)代碼。

DATABASE - 設(shè)置默認(rèn)數(shù)據(jù)庫(kù)。

LABEL - 為一組SQL命令分配一個(gè)標(biāo)簽。

RUN FILE - 執(zhí)行文件中包含的查詢。

GOTO - 將控制轉(zhuǎn)移到標(biāo)簽。

LOGOFF - 從數(shù)據(jù)庫(kù)注銷并終止所有會(huì)話。

IMPORT - 指定輸入文件路徑。

EXPORT - 指定輸出文件路徑并啟動(dòng)導(dǎo)出。

以下是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; 

上述腳本執(zhí)行以下任務(wù)。

  • 登錄到Teradata系統(tǒng)。
  • 設(shè)置默認(rèn)數(shù)據(jù)庫(kù)。
  • 創(chuàng)建名為employee_bkup的表。
  • 從Employee表中選擇一個(gè)記錄,以檢查表是否有任何記錄。
  • 如果表為空,則刪除employee_bkup表。
  • 將控件轉(zhuǎn)移到將插入記錄到employee_bkup表中的Label InsertEmployee
  • 在每個(gè)SQL語(yǔ)句之后,檢查ERRORCODE以確保語(yǔ)句成功。
  • ACTIVITYCOUNT返回先前SQL查詢選擇/影響的記錄數(shù)。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)