Oracle触发器案例
来源:互联网 发布:坐标数据库 编辑:程序博客网 时间:2024/06/14 01:10
--创建表
create table EMP (EMPNO number , ENAME varchar2(32) ,STR varchar2(32) );
CREATE OR REPLACE TRIGGER EMP_TRIGGER
BEFORE INSERT ON EMP
FOR EACH ROW
DECLARE
--PS+年月日+五位流水号
PS_NUMBER VARCHAR2(50); --评审单号
YEAR_MONTH_DAY VARCHAR2(32);
BEGIN
--查询最大评审单号 +1 ,得下一个评审单号
SELECT SUBSTR(MAX(E.STR), 3, LENGTH(MAX(E.STR)) - 2) + 1
INTO PS_NUMBER
FROM EMP E
WHERE E.STR LIKE '%' || 'PS' || TO_CHAR(SYSDATE, 'YYYYMMDD') || '%'
ORDER BY E.STR DESC;
--如果查询的评审单号为空,则从00001开始
IF PS_NUMBER IS NULL THEN
SELECT TO_CHAR(SYSDATE, 'YYYYMMDD') INTO YEAR_MONTH_DAY FROM DUAL;
PS_NUMBER := YEAR_MONTH_DAY || '00001';
END IF;
--如果插入的数据评审单号为空时,则取新生成的单号
IF :NEW.STR IS NULL THEN
:NEW.STR := 'PS' || PS_NUMBER;
END IF;
END;
--插入数据测试
insert into emp (empno, ename) values ('10', 'WANG莉');
insert into emp (empno, ename) values ('11', 'QQ莉2');
insert into emp (empno, ename) values ('12', 'WW莉3');
commit;
--查看结果,单号已生成插入
- oracle触发器使用案例
- oracle 触发器案例
- Oracle触发器案例
- oracle触发器浅析和案例
- Oracle索引、视图、存储过程、触发器案例
- oracle存储过程及触发器简单案例
- 触发器案例
- 触发器一个案例
- mysql触发器案例
- mysql 触发器案例
- 触发器的实践案例
- oracle 触发器
- Oracle触发器
- Oracle触发器
- oracle触发器
- ORACLE触发器
- oracle触发器
- Oracle 触发器
- CyclicBarrier源码浅析
- 《Effective Java中文版 第2版》(Joshua Bloch)pdf
- mysql存储过程while循环搭配if elseif选择条件
- 思维导图,带你走进“腹黑”政治家司马懿的一生
- sqlplus格式调整
- Oracle触发器案例
- 更新动态分区表
- centos7下安装mysql步骤
- [003]一步一步学懂spring
- 表单验证
- Successor (线段树)
- 小Demo小知识-android:foreground与android:background
- MainWindow布局
- PM入门准备