1 / 95
文档名称:

07 PL SQL高级编程.ppt

格式:ppt   页数:95
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

07 PL SQL高级编程.ppt

上传人:中国课件站 2011/10/11 文件大小:0 KB

下载得到文件列表

07 PL SQL高级编程.ppt

文档介绍

文档介绍:第七章:PL/SQL高级编程
第一节存储过程函数的概念
第二节包
第三节触发器
第一节存储过程函数的概念
开发一个存储过程或函数目的是把一个 PL/SQL块存进数据库中,并在以后重复使用。
例如:创建一个记录用户名和当前日期的
无参数过程
CREATE PROCEDURE log_execution IS
BEGIN
INSERT INTO log_table(user_id, log_date)
VALUES(user,sysdate);
END;
/
可以在不同的环境调用同一个存储过程。
注意:语法有区别
 ●在 SQL*Plus中记录用户名和当前日期
SQL> EXECUTE log_execution;
●从存储过程 FIRE_EMP中记录用户名和当前日期
CREATE PROCEDUER fire_emp
(v_emp_no IN %TYPE)
IS
BEGIN
log_execution;
DELETE FROM emp
WHERE empno=v_emp_no;
END;
/
一、存储过程与应用程序的区别
概念
存储过程
应用程序
存储位置
存储在数据库数据字典中
存储在应用程序中
调用地方
任何数据库工具或应用中都可以调用
只能在建立程序的应用中才能调用
相互调用
不可以调用应用程序
可以调用存储过程
建立程序的文档存储的位置
存储在数据库的数据字典中
存储在当前的应用中
安全性
由数据库提供安全保证,必须通过授权才能使用存储子程序
安全性靠应用程序保证,如果能执行应用程序,就能执行该程序。
二、开发存储过程和函数
1、开发一个存储过程和函数的步骤
(1)用文本编辑器编写一个含有Create Procedure或Create Function语句的PL/SQL脚本文件。(如:c:\)
(2)在 SQL*Plus中用命令(如:SQL>start c:\;)编译脚本文件,调试编译错误。系统就将创建过程或函数的源代码存入数据字典user_source中。
(3) 编译成功后将编译代码存入数据字典
(4) 调用存储过程和函数,在运行期间调试存储过程、函数的逻辑错误。
2、创建存储过程的语法
CREATE [OR REPLACE] PROCEDURE 过程名
[(参数名[IN | OUT | IN OUT] 数据类型, …)]
{IS | AS}
[说明部分]
BEGIN
语句序列
[EXCEPTION 出错处理]
END [过程名];
注意:IS 后面是一个完整的PL/SQL块的三部分(参见第六章),可以定义局部变量、游标等,但不能以 DECLARE开始。
★形式参数可以有三种模式----IN、OUT、IN OUT。如果没有为形式参数指定模式,那么缺省的模式是IN。
 
类型描述
--------------------------------------------------------------------
IN(缺省)参数用来从调用环境中向过程传递值
OUT参数用来从过程中返回值给调用者
IN OUT参数既可从调用者向过程中传递值,
也可以从过程中返回可能改变了
的值给调用者
局部变量在过程内部存放值
例:下面的过程说明了三种模式参数的区别
create or replace procedure modetest(
p_inparameter in number,
p_outparameter out number,
p_inoutparameter in out number)
is
v_localvariable number;
begin
v_localvariable:=p_inparameter; /*正确*/
(p_inparameter:=7; 错误)
v_outparameter:=7; /*正确*/
(v_localvariable:=p_outparameter; 错误)
v_localvariable:=p_inoutparameter; /*正确*/
v_inoutparameter:=7; /*正确*/
end;
/
例:下列存储过程给某一指定的员工涨指定数量的工资。
Create procedure raise_salary
(emp_id integer, v_increase real)
is
begin
update emp set sal= sal + v_increase
where empno=emp_id ;
commit;
end ;
/
例:下列

最近更新

2023年南充文化旅游职业学院单招职业技能考试.. 40页

2023年南昌交通学院单招职业倾向性考试模拟测.. 38页

2023年台州职业技术学院单招职业技能测试题库.. 42页

2023年合肥经济技术职业学院单招综合素质考试.. 40页

2023年吉林工程职业学院单招职业适应性考试模.. 40页

2023年吉林省白城市单招职业适应性测试题库必.. 40页

2026年元旦活动方案主题有哪些 25页

2023年哈尔滨幼儿师范高等专科学校单招职业技.. 41页

2023年唐山工业职业技术学院单招综合素质考试.. 41页

2023年商丘学院单招职业倾向性考试模拟测试卷.. 39页

2023年四川商务职业学院单招职业适应性考试模.. 41页

2023年四川水利职业技术学院单招职业技能测试.. 40页

2023年四川科技职业学院单招职业适应性测试题.. 40页

2023年大兴安岭职业学院单招综合素质考试题库.. 40页

2026年元宵节作文二年级大全 7页

2023年天津城市建设管理职业技术学院单招职业.. 40页

2023年天津职业技术师范大学单招职业技能测试.. 39页

2023年宁波大学科学技术学院单招职业适应性考.. 41页

2023年安庆师范大学单招职业倾向性测试题库及.. 40页

美团代运营业务委托合同 6页

新概念青少版2A各单元重点归纳 15页

足球竞彩项目招股说明书 7页

护理薪资计划书 28页

九年级家长会课件PPT下载(初三2班) 25页

湘少版小学英语单词表格级 10页

DB61∕T 926-2014 火灾高危单位消防安全管理与.. 45页

AQ 7011-2018《高温熔融金属吊运安全规程》 11页

保洁外包单位月度考评表 3页

基于 ABAQUS 的切削残余应力仿真说明书 43页