EA 中有没有一种方法可以用分号来划分所有语句,同时在创建触发器语句之后只有一个分号?
问题:
通过将主键定义为数字(18,0)并将列属性中的 AutoNum 设置为 True,我正在使用 EA 8.0 为 Oracle 数据库生成触发器。
然后在“生成 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 Developer 中,它会显示编译错误并显示消息
PLS-00103:找到符号“;”
当做一个
select * from SYS.USER_ERRORS
当未指定“SQL Terminator”时,将创建触发器(因为 create 语句以一个分号而不是两个分号结尾)而没有任何错误,但所有其他 create table 语句都不以分号结尾,这会导致“ORA-00922:缺少或无效的选项',因为语句没有用分号分隔。
我没有找到直接影响正在生成的触发代码的方法,仅适用于 C、Java 等语言, 但不适用于数据库代码。