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

  • 4
  • 0
  • 约1.22万字
  • 约 26页
  • 2016-10-18 发布于贵州
  • 举报
汤阳光_Orale课程文档(四)

存储过程和存储函数 存储过程与存储函数说明 指存储在数据库中供所有用户程序调用的子程序叫存储过程、存储函数。/存储函数 原则:如果只有一个返回值,用存储函数;否则,就用存储过程。 存储过程 创建存储过程 用CREATE PROCEDURE命令建立存储过程。语法如下: create [or replace] PROCEDURE 过程名(参数列表)AS 变量声明 PLSQL子程序体; 调用存储过程 方法二: exec[ute] 存储过程名 存储过程示例 为指定的职工在原工资的基础上长10%的工资,并打印涨工资前和涨工资后的工资 存储函数 创建存储函数 语法如下: CREATE [OR REPLACE] FUNCTION 函数名(参数列表) RETURN 函数值类型 AS PLSQL子程序体; 调用存储函数 或写成: 存储函数 过程和函数中的in和out 在Java语言中调用存储过程与存储函数 jdbc:oracle:oci:@localhost:1521:orcl 通过Oracle的客户机连接 Class.forName( oracle.jdbc.driver.OracleDriver ); cn = DriverManager.getConnection( jdbc:oracle:thin:@MyDbComputerNameOrIP:1521:ORCL, sUsr, sPwd ); JDBC调用存储过程 Java程序: JDBC调用存储函数 Java程序 JDBC调用带光标类型out参数的存储过程或函数 触发器 触发器的类型 语句级触发器(表级触发器) 在指定的操作语句操作之前或之后执行一次,不管这条语句影响了多少行 。 行级触发器(FOR EACH ROW) 触发语句作用的每一条记录都被触发。在行级触发器中使用old和new伪记录变量, 识别值的状态。 触发器可用于 数据确认? 实施复杂的安全性检查 做审计,跟踪表上所做的数据操作等 数据的备份和同步 创建触发器 触发语句与伪记录变量的值 触发语句 :old :new Insert 所有字段都是空(null) 将要插入的数据 Update 更新以前该行的值 更新后的值 delete 删除以前该行的值 所有字段都是空(null) 示例1:限制非工作时间向数据库插入数据 示例2:确认数据(检查emp表中sal 的修改值不低于原值) 运行效果 查询触发器、过程及函数 Select * from user_triggers; Select * from user_source; 数据字典 数据字典 数据字典命名规则 前缀 说明 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: 可以通过查询ALL_OBJECTS来确定当前用户能访问的数据对象 USER_OBJECTS视图 表与列的信息 DESCRIBE user_tables SELECT table_name FROM user_tables; 列的信息 DESCRIBE user_tab_columns SELECT column_name, data_type, data_length, data_precision, data_scale, nullable FROM user_tab_columns WHERE table_name = EMPLOYEES; 约束 USER_CONSTRAINTS:当前用户表上的约束 USER_CONS_COLUMNS 当前用户创建的列约束 DESCRIBE user_constraints SELECT constraint_name, constraint_type, search_condition, r_cons

文档评论(0)

1亿VIP精品文档

相关文档