Oracle存储过程、函数、触发器和包ppt课件.ppt
《Oracle存储过程、函数、触发器和包ppt课件.ppt》由会员分享,可在线阅读,更多相关《Oracle存储过程、函数、触发器和包ppt课件.ppt(35页珍藏版)》请在三一办公上搜索。
1、Oracle,存储过程、函数、触发器和包,主要内容,存储过程函数触发器包,存储过程和函数,存储过程和函数是存入数据库的PL/SQL块。但存储过程和函数不同于已经介绍过的PL/SQL程序块,我们通常把PL/SQL程序称为无名块,而存储过程和函数是以命名的方式存储于数据库中的。和PL/SQL程序相比,存储过程有很多优点,具体归纳如下:存储过程和函数以命名的数据库对象形式存储于数据库的数据字典中,事先经过编译排除错误。可以重复调用、效率更高。存储过程和函数可由数据库提供安全保证,要想使用存储过程和函数,需要有存储过程和函数的所有者的授权,只有被授权的用户或创建者本身才能执行存储过程或调用函数。像其他
2、高级语言的过程和函数一样,可以传递参数给存储过程或函数,参数的传递也有多种方式。存储过程可以有返回值,也可以没有返回值,存储过程的返回值必须通过参数带回;函数有一定的数据类型,像其他的标准函数一样,我们可以通过对函数名的调用返回函数值。,创建存储过程,创建存储过程,需要有CREATE PROCEDURE或CREATE ANY PROCEDURE的系统权限。创建一个存储过程的基本语句如下:CREATE OR REPLACE PROCEDURE 存储过程名(参数IN|OUT|IN OUT 数据类型.)AS|IS说明部分BEGIN可执行部分EXCEPTION 错误处理部分END 过程名;,可选关键字
3、OR REPLACE 表示如果存储过程已经存在,则用新的存储过程覆盖,通常用于存储过程的重建。参数部分用于定义多个参数(如果没有参数,就可以省略)。参数有三种形式:IN、OUT和IN OUT。如果没有指明参数的形式,则默认为IN。关键字AS也可以写成IS,后跟过程的说明部分,可以在此定义过程的局部变量。编写存储过程可以使用任何文本编辑器或直接在SQL*Plus环境下进行,编写好的存储过程必须要在SQL*Plus环境下进行编译,生成编译代码,原代码和编译代码在编译过程中都会被存入数据库。编译成功的存储过程就可以在Oracle环境下进行调用了。,创建存储过程说明,删除、修改和执行,一个存储过程在不
4、需要时可以删除。删除存储过程的人是过程的创建者或者拥有DROP ANY PROCEDURE系统权限的人。删除存储过程的语法:DROP PROCEDURE 存储过程名;如果要重新编译一个存储过程,则只能是过程的创建者或者拥有ALTER ANY PROCEDURE系统权限的人。语法如下:ALTER PROCEDURE 存储过程名 COMPILE;执行存储过程:执行(或调用)存储过程的人是过程的创建者或是拥有EXECUTE ANY PROCEDURE系统权限的人或是被拥有者授予EXECUTE权限的人。 方法1:call 模式名.存储过程名(参数.); 方法2:BEGIN 模式名.存储过程名(参数.)
5、;END,传递的参数必须与定义的参数类型、个数和顺序一致(如果参数定义了默认值,则调用时可以省略参数)。参数可以是变量、常量或表达式,用法参见下一节。如果是调用本账户下的存储过程,则模式名可以省略。要调用其他账户编写的存储过程,则模式名必须要添加。存储过程没有参数,在调用时,直接写过程名即可。见例子输出hello,world!,存储过程调用说明,create or replace procedure parapro(id in varchar2 default 001 , name in varchar2 default mly) isbegin Dbms_Output.put_line(id
6、); Dbms_Output.put_line(name);end parapro;/*declare v_id varchar2(100) ; v_name varchar2(100);beginparapro(); parapro(002);parapro(name=mao);parapro(id=v_id,name=v_name);end;*/,参数的作用是向存储过程传递数据,或从存储过程获得返回结果。正确的使用参数可以大大增加存储过程的灵活性和通用性。参数定义语法:参数名 参数类型 数据类型 DEFAULT 值;参数的类型有三种IN 定义输出变量,传入参数给存储过程。可以是变量或者值O
7、UT 定义输出变量,从存储过程中拿到数据。只能是变量IN OUT 既是输出也是输入参数。只能是变量。例子:分别带上不同类型的参数,参数传递,主要内容,存储过程函数触发器包,需要有CREATE FUNCTION或CREATE ANY FUNCTION的系统权限。创建存储函数的语法和创建存储过程的类似,即CREATE OR REPLACE FUNCTION 函数名(参数IN 数据类型.) 参数是可选的,但只能是IN类型(可以省略)RETURN 数据类型return 返回值类型,不可省略AS|IS说明部分BEGIN可执行部分RETURN (表达式)EXCEPTION错误处理部分END 函数名;,创建
8、函数,删除一个存储函数在不需要时可以删除,但删除的人应是函数的创建者或者是拥有DROP ANY function系统权限的人。其语法如下:DROP FUNCTION 函数名;重新编译重新编译一个存储函数时,编译的人应是函数的创建者或者拥有ALTER ANY function系统权限的人。语法如下:ALTER function 函数名 COMPILE;调用函数的调用者应是函数的创建者或拥有EXECUTE ANY function系统权限的人函数的引用和存储过程不同,函数要出现在程序体中,可以参加表达式的运算或单独出现在表达式中,其形式如下:变量名:=函数名(.)函数的例子,删除、修改、调用函数,
9、create or replace function getnamebyidfun(id in varchar2 ) return varchar2 is Result varchar2(100);begin select name into result from student where studentid =id; return(Result);exception when no_data_found then return no data found! ;end getnamebyidfun;/*declare v_id varchar2(100) :=001; v_name var
10、char2(100);beginv_name := getnamebyidfun(v_id);Dbms_Output.put_line(v_name);end;*/,例子可以通过对数据字典的访问来查询存储过程或函数的有关信息,如果要查询当前用户的存储过程或函数的源代码,可以通过对USER_SOURCE数据字典视图的查询得到。USER_SOURCE的结构如下:DESCRIBE USER_SOURCEselect TEXT from user_source WHERE NAME=EMP_COUNT;DESCRIBE GET_EMP_NAMESELECT STATUS FROM USER_OBJEC
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Oracle 存储 过程 函数 触发器 ppt 课件

链接地址:https://www.31ppt.com/p-2003956.html