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

Oracle(Sequence、Trigger、Procedure、Job)

2012-08-13 14:23 411 查看
1. 序列:sequence,实现功能,实现主键的自增长(sqlserver可直接设定),hibernate也做了实现

Create sequence
create sequence SNIPER_TEST_SQS
minvalue 1
maxvalue 999999999999
start with 1
increment by 1
cache 10;


在表中的应用

insert into sniper_test (id,name,degree,address) values (sniper_test_sqs.nextval,'张三','学士','山东');
commit;


2.触发器:trigger,用触发器的方式实现上边的内容

CREATE OR REPLACE TRIGGER SNIPER_TEST_TRIG
BEFORE INSERT ON SNIPER_TEST
FOR EACH ROW
BEGIN
SELECT SNIPER_TEST_SEQUENCE_1.NEXTVAL INTO :NEW.ID FROM DUAL;
END;


3.存储过程:procedure

create or replace procedure PC_SNIPER_TEST
is
begin
insert into sniper.sniper_test (id,name,degree,address) values ('','张三','学士','山东');
commit;
end;


4.定时器Job, 创建job,每隔一分钟定时执行,每隔一份中执行时,时间会有延迟,一般要63秒左右才能定时执行一次,目前没有好的解决方法*

begin
sys.dbms_job.submit(job => :job,
what => 'PC_SNIPER_TEST;',
next_date => to_date('13-08-2012 14:20:39', 'dd-mm-yyyy hh24:mi:ss'),
interval => 'SYSDATE+1/(24*60)');
commit;
end;
/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: