汤阳光_Oracle课程文档(四).docVIP

  • 1
  • 0
  • 约6.06千字
  • 约 26页
  • 2019-04-05 发布于陕西
  • 举报
存储过程和存储函数 存储过程与存储函数说明 指存储在数据库中供所有用户程序调用的子程序叫存储过程、存储函数。 什么时候用存储过程/存储函数 原则:如果只有一个返回值,用存储函数;否则,就用存储过程。 存储过程 创建存储过程 用CREATE PROCEDURE命令建立存储过程。语法如下: create [or replace] PROCEDURE 过程名[(参数列表)] AS 变量声明 PLSQL子程序体; 调用存储过程 方法一: set serveroutput on set serveroutput on begin raisesalary(7369); end; / 方法二: exec[ute] 存储过程名 set serveroutput on set serveroutput on exec raisesalary(7369); 存储过程示例 为指定的职工在原工资的基础上长10%的工资,并打印涨工资前和涨工资后的工资 存储函数 创建存储函数 函数(Function)为一命名的存储程序,可带参数,并返回一计算值。函数和过程的结构类似,但必须有一个RETURN子句,用于返回函数值。函数说明要指定函数名、结果值的类型,以及参数类型等。 语法如下: CREATE [OR REPLACE] FUNCTION 函数名(参数列表) RETURN 函数值类型 AS 变量声明 PLSQL子程序体; 调用存储函数 declare declare v_sal number; begin v_sal:=queryEmpSalary(7934); dbms_output.put_line(salary is: || v_sal); end; / 或写成: begin begin dbms_output.put_line(salary is: || queryEmpSalary(7934)); end; 存储函数示例 过程和函数中的in和out 在Java语言中调用存储过程与存储函数 JDBC调用存储过程 存储过程: Java程序: JDBC调用存储函数 存储函数: Java程序 JDBC调用带光标类型out参数的存储过程或函数 触发器 说明 数据库触发器是一个与表相关联的、存储的PL/SQL程序。每当一个特定的数据操作语句(Insert,update,delete)在指定的表上发出时,Oracle自动地执行触发器中定义的语句序列。 触发器的类型 语句级触发器 在指定的操作语句操作之前或之后执行一次,不管这条语句影响了多少行 。 行级触发器(FOR EACH ROW) 触发语句作用的每一条记录都被触发。在行级触发器中使用old和new伪记录变量, 识别值的状态。 触发器可用于 数据确认? 实施复杂的安全性检查 做审计,跟踪表上所做的数据操作等 数据的备份和同步 创建触发器 CREATE [or REPLACE] TRIGGER CREATE [or REPLACE] TRIGGER 触发器名 {BEFORE | AFTER} {DELETE | INSERT | UPDATE [OF 列名]} ON 表名 [FOR EACH ROW [WHEN(条件) ] ] PLSQL 块 触发语句与伪记录变量的值 触发语句 :old :new Insert 所有字段都是空(null) 将要插入的数据 Update 更新以前该行的值 更新后的值 delete 删除以前该行的值 所有字段都是空(null) 示例1:限制非工作时间向数据库插入数据 示例2:确认数据(检查emp表中sal 的修改值不低于原值) 运行效果 查询触发器、过程及函数 Select * from user_triggers; Select * from user_source; 数据字典 数据字典说明 有2种作用的表 数据字典的结构 数据字典命名规则 前缀 说明 USER 用户自己的 ALL 用户可以访问到的 DBA 管理员视图 V$ 性能或参数设置相关的数据 如何使用数据字典视图 DESCRIBE DICTIONARY SELECT * FROM dictionary WHERE table_name = USER_OBJECTS; 从DICTIONARY开始,这个数据对象包含了数据字典的表名和说明 USER_OBJECTS 和ALL_OBJECTS USER_OBJECTS: 通过查询USER_OBJECTS可以确定当前用户所有创建的对象 可以获得如下信息: Date created Date of last modification Status (valid or invalid) ALL_OBJECTS: 可以通过

文档评论(0)

1亿VIP精品文档

相关文档