- 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:
可以通过
您可能关注的文档
- 谁说菜鸟不会数据分析 SPSS篇 ,狄松著 ,P228 ,2016.06 sample.pdf
- 水晶易表白皮书V2.0.pdf
- 说话的逻辑与技巧_12859570.pdf
- 思科AP简明配置指南.pdf
- 思科ASA动手实验操作指南(中文版).pdf
- 思科ASA防火墙介绍.ppt
- 思科CCNA_CCNP_CCIE案例实战手册 交换部分案例实战.pdf
- 思科CleanAir技术中文介绍.pdf
- 思科IPS入侵检测系统.ppt
- 思科IP通信中小系统CCME设计指南.pdf
- 2026上海复旦大学未来信息创新学院招聘电磁波信息科学教育部重点实验室徐丰课题组软件工程师岗位1人备.docx
- 2026年实习律师考核笔试题库200道【研优卷】.docx
- 2026中国科学院天津工业生物技术研究所多肽与蛋白质工程研究中心招聘3人备考题库附答案.docx
- 2026中国电科电科院招聘备考题库附答案.docx
- 鹈鹕算法优化VMD参数与RF的滚动轴承故障诊断.docx
- 2025江西景德镇市公安局下半年招聘警务辅助人员体能测评备考题库及答案1套.docx
- 2026陕西西安能康医院第一季度招聘备考试题附答案.docx
- 泰和县教育体育局所属事业单位竞争性选调工作人员的备考题库附答案.docx
- 北京建筑工程学院.ppt
- 邮政储蓄银行校园招聘笔试科目内容题量占比深度解析.pptx
原创力文档

文档评论(0)