Учебники

Teradata — BTEQ

Утилита 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-запросом.