2013-06-14 1 views
1

Oracle에서 Teradata로 데이터베이스를 마이그레이션하고 있습니다.bteq를 사용하여 Teradata Server에 트리거를로드하는 방법

유효한 트리거 DDL이있는 파일은 .sql이고, 트리거는 .compile 명령이있는 파일이 .bteq입니다. 그러나이 .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

을; Teradata를위한 것입니까? 그것은 당신이 얻는 오류를 보여 준다면 내가하는 것보다 더 많이 알고있는 누군가를 도울 것입니다. –

+0

Alex, 답장을 보내 주셔서 대단히 감사합니다. – MaterialGirl

+0

bteq 및 Teradata SQL Assistant에서이 트리거를 직접로드 했으므로 구문이 유효합니다. 문제는 여기에 파일 – MaterialGirl

답변

1

BTEQ의 .COMPILE 명령은 Teradata 저장 프로 시저를 컴파일하기 위해 예약되어 있습니다. 트리거에 대한 DDL 문은 직접 실행될 수 있습니다. 당신이 DDL을 포함하는 별도의 파일이있는 경우에는 .RUN 명령을 사용하여 BTEQ 내에서이를 참조 할 수 있습니다 : 그것은 오라클 트리거 유효 DDL하지

.logon vmdbsrv016/dbc, {password}; 

DATABASE twm; 

.RUN FILE=td_instrg1.sql; 

.logoff; 
+1

롭, 고마워요 !!!! 그것은 실제로 .RUN 명령과 함께 작동합니다. 대단히 감사합니다! – MaterialGirl

+0

당신을 진심으로 환영합니다. :) –

관련 문제