2012-07-17 157 views
1

EA中有没有一种方法可以用分号分隔所有的语句,同时在创建触发语句后只有一个分号?企业架构师,数据库触发器生成(oracle)和双分号

问题:

我通过定义主键为数字(18,0)生成用于用EA 8.0 Oracle数据库触发器和在列属性设定AUTONUM为True。 Column Properties

然后在选择下面的复选框“生成DDL”对话框 Generate DDL

什么EA产生的触发是

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;; 

插入触发到PL/SQL开发它显示了一个编译错误与消息

PLS-00103:Found Symbol“;”

在做一个

select * from SYS.USER_ERRORS 

当不specifing一个“SQL终结者”触发创建没有任何错误,但随后其他所有创建表(因为创建语句以一个分号,而不是两个端)语句不会以导致'ORA-00922:缺失或无效选项'的分号结尾,因为语句不以分号分隔。

我没有找到直接的方式来影响正在生成的触发器代码,仅适用于C,Java see等语言,但不适用于数据库代码。

+0

注:我也张贴在用户的Sparx论坛同样的问题下http://www.sparxsystems.com/cgi-bin/yabb /YaBB.cgi?board=bugs – 2012-07-18 11:16:09

+0

我想我必须修改生成的代码无论如何,因为PL/SQL触发器需要终止并结束斜杠见http://stackoverflow.com/questions/3752708/oracle-script-problem -create触发件未端接 – 2012-07-18 12:34:13

回答

1

与Enterprise Architect版本9.3.934生成同样的一代产生这样的触发器。

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; 
/

所以它似乎是在老版中的错误