Teradata - BTEQ
Tiện ích BTEQ là một tiện ích mạnh mẽ trong Teradata có thể được sử dụng ở cả chế độ hàng loạt và chế độ tương tác. Nó có thể được sử dụng để chạy bất kỳ câu lệnh DDL, câu lệnh DML, tạo Macro và các thủ tục được lưu trữ. BTEQ có thể được sử dụng để nhập dữ liệu vào bảng Teradata từ tệp phẳng và nó cũng có thể được sử dụng để trích xuất dữ liệu từ bảng thành tệp hoặc báo cáo.
Điều khoản BTEQ
Sau đây là danh sách các thuật ngữ thường được sử dụng trong tập lệnh BTEQ.
LOGON - Dùng để đăng nhập vào hệ thống Teradata.
ACTIVITYCOUNT - Trả về số hàng bị ảnh hưởng bởi truy vấn trước đó.
ERRORCODE - Trả về mã trạng thái của truy vấn trước đó.
DATABASE - Đặt cơ sở dữ liệu mặc định.
LABEL - Gán nhãn cho một tập hợp các lệnh SQL.
RUN FILE - Thực hiện truy vấn có trong một tệp.
GOTO - Chuyển quyền điều khiển sang nhãn.
LOGOFF - Đăng xuất khỏi cơ sở dữ liệu và kết thúc tất cả các phiên.
IMPORT - Chỉ định đường dẫn tệp đầu vào.
EXPORT - Chỉ định đường dẫn tệp đầu ra và bắt đầu xuất.
Thí dụ
Sau đây là một tập lệnh BTEQ mẫu.
.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;
Tập lệnh trên thực hiện các tác vụ sau.
Đăng nhập vào Hệ thống Teradata.
Đặt cơ sở dữ liệu mặc định.
Tạo một bảng có tên là worker_bkup.
Chọn một bản ghi từ bảng Nhân viên để kiểm tra xem bảng có bất kỳ bản ghi nào không.
Bỏ bảng worker_bkup, nếu bảng trống.
Chuyển quyền điều khiển sang một Chèn Nhãn sẽ chèn các bản ghi vào bảng worker_bkup
Kiểm tra ERRORCODE để đảm bảo rằng câu lệnh thành công, sau mỗi câu lệnh SQL.
ACTIVITYCOUNT trả về số lượng bản ghi được chọn / tác động bởi truy vấn SQL trước đó.