东软学习,oracle函数与触发器
来源:互联网 发布:alien skin x2 mac 编辑:程序博客网 时间:2024/05/23 10:36
--1.无参函数CREATE OR REPLACE FUNCTION func1 RETURN VARCHAR2 IS BEGIN RETURN '欢迎你:'||USER||',现在是:'||to_char(SYSDATE,'yyyy-mm-dd'); END func1;--调用测试 BEGIN dbms_output.put_line(func1);END;--有参函数SELECT * FROM emp;CREATE OR REPLACE FUNCTION getWorkTime(hiredate DATE) RETURN NUMBER ISBEGIN RETURN trunc(months_between(SYSDATE,hiredate)/12);END getWorkTime;SELECT ename,job,getWorkTime(hiredate) FROM emp;--触发器--语句触发器(select/insert/update/delete)CREATE OR REPLACE TRIGGER trg_dept BEFORE INSERT OR UPDATE OR DELETE ON dept DECLARE BEGIN dbms_output.put_line(USER||','||to_char(SYSDATE,'yyyy-mm-dd')||',对dept进行操作。'); END trg_dept;UPDATE dept SET dname='测试' WHERE deptno=60;INSERT INTO dept VALUES(23,'触发器','数据库');--行触发器(FOR EACH ROW)--before触发器--伪记录 :NEW :OLD--3个条件谓词:INSERTING UPDATING DELETINGCREATE OR REPLACE TRIGGER trg_dept_before BEFORE INSERT OR UPDATE OR DELETE ON dept FOR EACH ROWDECLARE v_now VARCHAR2(50);BEGIN v_now:=to_char(SYSDATE,'yyyy-mm-dd hh24:mi:ss'); CASE WHEN INSERTING THEN dbms_output.put_line(v_now||'对dept表进行了添加操作'); dbms_output.put_line('添加的数据:'||:new.deptno||','||:new.dname||','||:new.loc); WHEN UPDATING THEN dbms_output.put_line(v_now||'对dept表进行了修改操作'); dbms_output.put_line('修改之前的数据:'||:old.deptno||','||:old.dname||','||:old.loc); dbms_output.put_line('修改之后的数据:'||:new.deptno||','||:new.dname||','||:new.loc); WHEN DELETING THEN dbms_output.put_line(v_now||'对dept表进行了删除操作'); dbms_output.put_line('删除的数据:'||:old.deptno||','||:old.dname||','||:old.loc); END CASE;END trg_dept_before;INSERT INTO dept VALUES(24,'触发器4','数据库4');UPDATE dept SET dname='测试' WHERE deptno=24;DELETE FROM dept WHERE deptno=24;COMMIT;--实现SQL Server中标识列效果CREATE SEQUENCE seq_dept_deptno INCREMENT BY 1 START WITH 100 MAXVALUE 999999 NOCYCLE;--触发器(从序列里面取值,并且在insert语句进行使用CREATE OR REPLACE TRIGGER trg_dept_before_increment BEFORE INSERT ON dept FOR EACH ROWBEGIN SELECT seq_dept_deptno.nextval INTO :new.deptno FROM dual;END trg_dept_before_increment;INSERT INTO dept (dname,loc) VALUES('序列','序列');--INSERT INTO dept (deptno,dname,loc) VALUES(seq_dept_deptno.nextval,'序列','序列');COMMIT;SELECT * FROM dept;
0 0
- 东软学习,oracle函数与触发器
- 东软学习,oracle函数与触发器2
- Oracle函数与触发器
- oracle函数与触发器
- Oracle之函数与触发器
- Oracle中函数与触发器
- Oracle之函数与触发器
- Oracle之函数与触发器
- Oracle之函数与触发器
- oracle过程、函数、触发器、程序包学习笔记
- oracle中的函数与触发器的使用
- Oracle之触发器 函数
- oracle 基础学习03 ---- 函数 触发器 存储过程
- Oracle学习(12):存储过程,函数和触发器
- Oracle数据库的存储过程、存储函数与触发器
- oracle触发器学习
- Oracle 学习笔记 触发器
- oracle 触发器学习笔记
- For循环
- [MFC]CString转char[]
- 程序员的编程、调试、排错小建议
- 插入排序_1.直接插入排序
- 程序员生存定律-打造属于自己的稀缺性
- 东软学习,oracle函数与触发器
- Java Thread(线程)案例详解sleep和wait的区别
- EGORefreshTableHeaderView--ARC下面的使用 UItableView下来刷新的使用
- hdu 1005 Number Sequence(智寻循环节)
- UVA 662 Fast Food 区间DP
- 【金阳光测试】--深入Monkey工具和使用--Android系列(3)2014年八月八号
- qt html标签
- fatal error: android/native_window.h: No such file or directory
- 数据库分表与分区