您的位置:首页 > 数据库 > Oracle

JAVA_WEB Oracle 10g学习:员工号自动生成源代码(触发器和序列)

2013-08-06 10:58 627 查看
 

create table user_info_temp

(

      usId varchar2(20),

      usNo varchar2(20),

      usName varchar2(50)

)

--oracle中如何查看当前系统时间

select sysdate from dual;

--oracle中获取当前指定显示系统时间:yyyy 年份

select to_char(sysdate,'yyyy') from dual;

--concat拼接:'T'+'年份'

select concat('T', to_char(sysdate,'yyyy')) from dual;

--查看序列号

select temp_seq.nextval from dual;

--创建触发器

create or replace trigger user_trg

before insert on user_info_temp for each row

when(new.usId is null)
--(new.usId is null or/and new.usNo is null)

declare      

              pk number;

begin   

              select temp_seq.nextval into pk from dual;

              select pk into :new.usId from dual;

              select concat(concat('T', to_char(sysdate,'yyyy')),lpad(pk,4,'0')) into :new.usNo from dual;

end;             

      

 

--测试触发器是创建成功

insert into user_info_temp(usId,usNo,usName) values ('1','T001','小强') ;

insert into user_info_temp(usId,usNo,usName) values ('1','T001','小李') ;

insert into user_info_temp(usName) values ('小李2') ;

select * from user_info_temp;

--说明:创建序列

-- Create sequence

create sequence TEMP_SEQ

minvalue 1

maxvalue 9999999999

start with 11

increment by 1

cache 10;

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: