2012-07-17 2 views
1

EA에서 모든 구문을 세미콜론으로 분리하는 동시에 create trigger 문 다음에 세미콜론을 하나만 올리는 방법이 있습니까?Enterprise Architect, 데이터베이스 트리거 생성 (오라클) 및 이중 세미콜론

문제점 :

I 숫자 (18,0) 일차 키로서 정의하여 EA 8.0 오라클 DB를위한 트리거를 생성하는 트루 칼럼 특성에 AUTONUM를 설정하고있다. Column Properties

그런 다음에 다음의 체크 박스를 선택하는 '생성 DDL'대화 Generate DDL

EA는 트리거를 생성 무엇

은 PL/SQL 개발자로 트리거

CREATE OR REPLACE TRIGGER TRG_Foo_id 
BEFORE INSERT 
ON Foo 
FOR EACH ROW 
BEGIN 
    SELECT SEQ_Foo_id.NEXTVAL 
    INTO :NEW.id 
    FROM DUAL; 
END;; 

삽입 그것을 컴파일 오류가 표시입니다 메시지와 함께

PLS-00103 : 발견 된 심볼 ";"

select * from SYS.USER_ERRORS 

를하고 'SQL 터미네이터'트리거가 만들어집니다도 명시하지 않을 경우 다음 오류없이 다른 모든 만들 테이블 (CREATE 문은 하나 대신 두 세미콜론 (;)으로 끝나는 때문에) 문장은 세미콜론으로 끝나지 않으므로 'ORA-00922 : missing or invalid option'으로 끝나는 세미콜론으로 끝나지 않습니다.

C, Java와 같은 언어 (예 : see)에 대해서만 트리거 코드에 영향을 줄 수있는 직접적인 방법을 찾지 못했지만 데이터베이스 코드가 아닙니다.

+0

참고가 될 것 같다 /YaBB.cgi?board=bugs –

+0

PL/SQL 트리거를 종료하고 슬래시를 종료해야하기 때문에 생성 된 코드를 수정해야한다고 생각합니다. http://stackoverflow.com/questions/3752708/oracle-script-problem -create-trigger-not-terminating –

답변

1

이와 같은 트리거를 생성하는 Enterprise Architect 버전 9.3.934와 동일한 생성을 수행 했습니까? 나는 또한 아래의 Sparx 사용자 포럼에 같은 질문을 게시 http://www.sparxsystems.com/cgi-bin/yabb :

CREATE OR REPLACE TRIGGER TRG_Foo_id 
BEFORE INSERT 
ON Foo 
FOR EACH ROW 
BEGIN 
    SELECT SEQ_Foo_id.NEXTVAL 
    INTO :NEW.id 
    FROM DUAL; 
END; 
/

은 그래서 이전 버전의 버그

관련 문제