1

我们正在将数据库从 Oracle 迁移到 Teradata。

我们有.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实用程序从脚本加载触发器。

4

1 回答 1

1

BTEQ 中的.COMPILE命令保留用于编译 Teradata 存储过程。触发器的 DDL 语句可以直接执行。.RUN如果您有包含 DDL 的单独文件,您可以使用以下命令从 BTEQ 中引用它们:

.logon vmdbsrv016/dbc, {password};

DATABASE twm;

.RUN FILE=td_instrg1.sql;

.logoff;
于 2013-06-14T16:00:55.917 回答