开花流水

空山无人,水流花开。

BlogJava 首页 新随笔 联系 聚合 管理
  79 Posts :: 42 Stories :: 160 Comments :: 0 Trackbacks

先创建一个名字为test_Sequence的序列,然后执行下列语句,
CREATE TABLE example1(
ID Number(4) NOT NULL PRIMARY KEY,
NAME VARCHAR(25),
PHONE VARCHAR(10),
ADDRESS VARCHAR(50));


create trigger "example1_tt" before insert
on "EXAMPLE1" for each row
declare
    integrity_error  exception;
    errno            integer;
    errmsg           char(200);
    dummy            integer;
    found            boolean;

begin
    --  Column ""ID"" uses sequence Sequence_increase
    select test_Sequence.Nextval INTO :new."ID" from dual;

--  Errors handling
exception
    when integrity_error then
       raise_application_error(errno, errmsg);
end;

需要注意的是不同的表共用同一个序列时,由于序列的是一个,所以不同表的自增会不连续,另外和SqlServer不同的还有,设置了这个以后主键是可以自己维护的,只有当主键为空时才会调用触发器,由序列产生自增值。

另外,pd自动生成的oracle的sql语句是包含双引号的,可能导致oracle权限的错误,错误提示是:ORA-00904:invalid identifier。
posted on 2010-07-30 17:26 开花流水 阅读(4007) 评论(0)  编辑  收藏 所属分类: java技术

只有注册用户登录后才能发表评论。


网站导航: