2013-06-14 1 views
1

Мы переносим базу данных с Oracle на Teradata.Как загрузить триггеры на сервер Teradata с помощью bteq

У нас есть файлы .sql с действительными триггерными DDL и .bteq файлами с командами .compile для этих триггеров. Но когда мы запускаем эти файлы .bteq, мы получаем ошибки и триггер не загружается. Например, файл td_instrg1.sql содержит определение триггера:

CREATE TRIGGER TD_INSTRG1 
AFTER INSERT 
ON TD_EMPLOYEES 
REFERENCING NEW AS X1 
FOR EACH ROW 
WHEN(X1.id is not null) 
BEGIN ATOMIC 
    (INSERT INTO TD_EMPLOYEES1  VALUES(X1.id, X1.name, X1.monthly_income);) 
END; 

и файл td_instrg1.bteq содержит следующие команды:

.logon vmdbsrv016/dbc, dbc; 

DATABASE twm; 

.compile FILE=td_instrg1.sql; 

.logoff; 

Пожалуйста, посоветуйте, как загрузить триггеры из сценариев с помощью bteq утилиты.

+0

Это не является допустимым DDL для запуска Oracle; это для Терадаты? Это может помочь кому-то, кто знает об этом больше, чем я, если вы покажете ошибки, которые у вас есть. –

+0

Алекс, большое спасибо за ваш ответ. – MaterialGirl

+0

Синтаксис действителен, так как я загрузил этот триггер непосредственно из bteq и Teradata SQL Assistant. Дело в том, что нам нужно загрузить его из файла – MaterialGirl

ответ

1

Команда .COMPILE в BTEQ зарезервирована для компиляции хранимых процедур Teradata. Ваши операторы DDL для триггеров могут быть выполнены напрямую. Если у вас есть отдельные файлы, содержащие DDL вы можете ссылаться на них изнутри BTEQ используя .RUN команду:

.logon vmdbsrv016/dbc, {password}; 

DATABASE twm; 

.RUN FILE=td_instrg1.sql; 

.logoff; 
+1

Роб, большое спасибо !!!! Похоже, что он действительно работает с командой .RUN. Большое спасибо! – MaterialGirl

+0

Добро пожаловать. :) –

 Смежные вопросы

  • Нет связанных вопросов^_^