Oralce数据库之存储过程、存储函数、触发器和数据字典
来源:互联网 发布:mac air 电池容量 编辑:程序博客网 时间:2024/06/05 03:24
Oracle数据库总结
Oracle数据库之集合运算
Oracle数据库之数据处理
Oracle数据库之建表和管理表
Oracle数据库之对象视图、索引、序列、同义词
一、存储过程和存储函数
1、概念
存储在数据库中供所有用户程序调用的子程序,称为存储过程或者存储函数
2、存储过程语法
create [or replace] procedure 过程名(参数列表)as plsql子程序体
实例1:
create or replace procedure sayhelloworldas --说明部分begin dbms_output.put_line('Hello World');end;/
实例2:
--给指定的员工涨500,并且打印涨前和涨后的薪水create or replace procedure raiseSalary(eno in number)as --定义变量保存涨前的薪水 psal emp.sal%type;begin select sal into psal from emp where empno=eno; update emp set sal = sal+500 where empno=eno; dbms_output.put_line('涨前:'||psal||' 涨后:'||(psal+100));end;/
3、存储函数
函数为一命名的存储程序,可带参数,并返回一个计算值。函数和存储过程类似,但函数必须return子句用于返回值。函数说明必须指定函数名、结果值的类型和参数类型。
语法结构
create [or replace] function 函数名(参数列表)return 函数值类型as plsql子程序体
实例1:
--查询某个员工的年收入create or replace function queryempincome(eno in number)return numberas --月薪和奖金 psal emp.sal%type; pcomm emp.comm%type;begin select sal,comm into psal,pcomm from emp where empno=eno; --返回年收入 return psal*12+nvl(pcomm,0);end;/
实例2:
create or replace procedure queryempinfo(eno in number, pename out varchar2, psal out number, pjob out varchar2)as begin select ename,sal,empjob into pename,psal,pjob from emp where empno=eno;end;/
二、触发器
1、概念
数据库触发器是一个与表相关联的、存储的pl/sql程序。每当一个特定的数据操作语句(insert、delete、update)在指定的表上发出时,oracle自动的执行触发器中定义的语句序列。
2、触发器的类型
1)语句级触发器
在指定的操作语句之前或者是之后执行一次,不管这条语句影响了多少行。
2)行级触发器(for each row)
触发语句作用的每一条语句都会触发。
3、触发器语法
create [or replace] trigger 触发器名{before|after}{delete|insert|update[of 列名]}on 表名[for each row [when(条件)]]pl/sql语句块
实例1:
--成功插入新员工后,自动打印“very good”create or replace trigger saynewempafter inserton empdeclarebegin dbms_output.put_line('very good');end;/
实例2:
/* 涨后的工资不能少于涨前的工资*/create or replace trigger checksalarybefore updateon empfor each row begin --if 涨后的薪水 < 涨前的薪水 then if :new.sal < :old.sal then raise_application_error(-20002,'涨后的工资不能少于涨前的工资。涨前:'||:old.sal||' 涨后:'||:new.sal); end if;end;/
三、数据字典
1、数据字典介绍
oracle数据字典是有表和视图组成的,存储有关数据库结构信息的一些数据库对象。数据库字典描述了实际数据是如何组织的。对它们可以象处理其他数据库表或视图一样进行查询,但不能进行任何修改。
Oracle数据库字典通常是在创建和安装数据库时被创建的,Oracle数据字典是Oracle数据库系统工作的基础,没有数据字典的支持,Oracle数据库系统就不能进行任何工作。
在Oracle数据库字典中,许多视图都有三个不同的实例,它们的前缀分别为”USER_”、”ALL_”及”DBA_”。”USER_”为前缀的数据库字典视图通常记录执行查询的帐户所拥有的对象的信息,”ALL_”为前缀的数据库字典视图通常记录包括执行查询的帐户所拥有的对象的信息及授权至PUBLIC的帐户用户所拥有的对象的信息,”DBA_”为前缀的数据库字典视图则包含所有数据库对象的信息,而不管其所有者。其他的字典视图中主要的是V
在Oracle的绝大多数数据字典视图中都有象DBA_TABLES,ALL_TABLES和USER_TABLES这样的视图家族。Oracle中有超过100个视图家族,下表列出了最重要和最常用的视图家族,需要注重的是每个视图家族都有一个DBA_,一个ALL_一个USER_视图。
在Oracle中还有一些不常用的数据字典表,但这些表不是真正的字典家族,他们都是一些重要的单一的视图。这些视图见下表:
- Oralce数据库之存储过程、存储函数、触发器和数据字典
- 数据库基础 之 “存储过程和触发器”
- 触发器、存储过程和函数之拾遗
- 数据库存储过程和触发器
- 存储过程,函数和触发器
- Mysqldump备份数据库—结构+数据+存储过程、函数、触发器
- Oracle数据库之视图、索引、存储过程、触发器、事务、函数
- MySQL只导出数据库结构和存储过程、触发器、函数,但不导表数据
- 00201 数据库基础:函数、触发器TRIGGER和存储过程PROCEDURE
- 数据库存储过程、函数、触发器的区别
- 数据库可编程性;存储过程;函数;触发器
- 数据库存储过程,触发器,游标,函数
- 存储过程,存储函数,触发器。。。
- 数据库基础知识点二:PLSQL、游标、程序包、存储过程、触发器,序列,视图,索引,数据字典
- 存储过程、函数、触发器
- 存储过程、函数、触发器
- 存储过程,函数,触发器
- 数据库开发之存储过程、触发器、游标
- 文章标题
- HTTP介绍
- spark一些优化
- PAT乙级1044
- 大数据技术--kafka和flume的对比
- Oralce数据库之存储过程、存储函数、触发器和数据字典
- 封装--Java基础037
- 图论(一)基本概念
- 【数据结构】栈stack
- Adapter模式
- NO.5_448. Find All Numbers Disappeared in an Array
- vi编辑器的全部概览
- 关于Activity向Fragment传值的问题
- java多态之运行时多态和编译时多态