Утилита BTEQ — мощная утилита в Teradata, которую можно использовать как в пакетном, так и в интерактивном режиме. Его можно использовать для запуска любого оператора DDL, оператора DML, создания макросов и хранимых процедур. BTEQ можно использовать для импорта данных в таблицы Teradata из плоского файла, а также для извлечения данных из таблиц в файлы или отчеты.
Условия BTEQ
Ниже приведен список терминов, обычно используемых в скриптах BTEQ.
-
LOGON — используется для входа в систему Teradata.
-
ACTIVITYCOUNT — возвращает количество строк, затронутых предыдущим запросом.
-
ERRORCODE — возвращает код состояния предыдущего запроса.
-
БАЗА ДАННЫХ — Устанавливает базу данных по умолчанию.
-
LABEL — назначает метку для набора команд SQL.
-
RUN FILE — выполняет запрос, содержащийся в файле.
-
GOTO — передает управление метке.
-
LOGOFF — выходит из базы данных и завершает все сеансы.
-
ИМПОРТ — Указывает путь к входному файлу.
-
EXPORT — указывает путь к выходному файлу и инициирует экспорт.
LOGON — используется для входа в систему Teradata.
ACTIVITYCOUNT — возвращает количество строк, затронутых предыдущим запросом.
ERRORCODE — возвращает код состояния предыдущего запроса.
БАЗА ДАННЫХ — Устанавливает базу данных по умолчанию.
LABEL — назначает метку для набора команд SQL.
RUN FILE — выполняет запрос, содержащийся в файле.
GOTO — передает управление метке.
LOGOFF — выходит из базы данных и завершает все сеансы.
ИМПОРТ — Указывает путь к входному файлу.
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.
Устанавливает базу данных по умолчанию.
Создает таблицу с именем employee_bkup.
Выбирает одну запись из таблицы Employee, чтобы проверить, есть ли в таблице какие-либо записи.
Удаляет таблицу employee_bkup, если таблица пуста.
Переносит элемент управления в Label InsertEmployee, который вставляет записи в таблицу employee_bkup.
Проверяет ERRORCODE, чтобы убедиться, что оператор выполнен успешно, после каждого оператора SQL.
ACTIVITYCOUNT возвращает количество записей, выбранных / затронутых предыдущим SQL-запросом.