Chinaunix首页 | 论坛 | 博客
  • 博客访问: 790980
  • 博文数量: 180
  • 博客积分: 4447
  • 博客等级: 上校
  • 技术积分: 1582
  • 用 户 组: 普通用户
  • 注册时间: 2006-04-03 14:51
文章分类

全部博文(180)

文章存档

2014年(6)

2013年(8)

2011年(125)

2009年(35)

2008年(1)

2007年(5)

分类: Oracle

2011-03-21 10:53:39

最近学习pl/sql,文章中的一个例子没有实验成功,后来仔细读文章才发现原来是11g的新特性

10g的代码如下

 

  1. CREATE OR REPLACE TRIGGER emp_tri
  2. BEFORE INSERT ON employees
  3. FOR EACH ROW
  4.   DECLARE
  5.   v_employee_id employees.employee_id%type;
  6.   BEGIN
  7.     select employees_seq.nextval into
  8.      v_employee_id from dual;
  9.     :NEW.EMPLOYEE_ID:=v_employee_id;
  10.     :NEW.EMAIL:='xxx@163.com';
  11.     :NEW.PHONE_NUMBER:='110.110.110';
  12.     :NEW.HIRE_DATE:=SYSDATE;
  13.     :NEW.JOB_ID:='SH_CLERK';
  14.     :NEW.MANAGER_ID:=124;
  15.     :NEW.DEPARTMENT_ID:=50;
  16.     END;
  17.     
  18.      insert into employees(first_name,last_name,salary)
  19.      values('li','qu',20000);

 

11g对sequence引用方便多了

 

  1. CREATE OR REPLACE TRIGGER emp_tri
  2. BEFORE INSERT ON employees
  3. FOR EACH ROW
  4.     BEGIN
  5.     :NEW.EMPLOYEE_ID:=employees_seq.nextval;
  6.     :NEW.EMAIL:='xxx@163.com';
  7.     :NEW.PHONE_NUMBER:='110.110.110';
  8.     :NEW.HIRE_DATE:=SYSDATE;
  9.     :NEW.JOB_ID:='SH_CLERK';
  10.     :NEW.MANAGER_ID:=124;
  11.     :NEW.DEPARTMENT_ID:=50;
  12.     END;
  13.     
  14.      insert into employees(first_name,last_name,salary)
  15.      values('li','qu',20000);

确实11g就连写触发器都简单了,如果简单的触发器甚至都不要学pl/sql了。

 

阅读(1399) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~