第10章存储过程、函数和触发器优秀PPT.ppt
《第10章存储过程、函数和触发器优秀PPT.ppt》由会员分享,可在线阅读,更多相关《第10章存储过程、函数和触发器优秀PPT.ppt(40页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第10章存储过程、函数和触发器现在学习的是第1页,共40页过程和函数概述过程和函数概述匿名的匿名的PL/SQL PL/SQL 块的缺点是,每次执行的时候都要被块的缺点是,每次执行的时候都要被重新编译,并且不能被存储在数据库中(因此不能被重新编译,并且不能被存储在数据库中(因此不能被其他其他PL/SQLPL/SQL块使用)。块使用)。过程与函数是命名的过程与函数是命名的PL/SQLPL/SQL块,被存储在数据库中,块,被存储在数据库中,并且可以被其他并且可以被其他PL/SQLPL/SQL块使用。过程与函数也称为块使用。过程与函数也称为子程序子程序。现在学习的是第2页,共40页过程过程(PROCE
2、DUER):(PROCEDUER):是模块化程序设计的基本概念,是模块化程序设计的基本概念,它将一些相关的它将一些相关的SQLSQL语句,流程控制语句组合在一起,语句,流程控制语句组合在一起,用于用于执行某些特定的操作或者任务执行某些特定的操作或者任务。函数函数(FUNCTION):(FUNCTION):用于用于计算和返回计算和返回特定的数据,可以特定的数据,可以将经常需要进行的计算写成函数。将经常需要进行的计算写成函数。现在学习的是第3页,共40页图:过程和函数的PL/SQL块结构现在学习的是第4页,共40页10.1 创建过程创建过程CREATE OR REPLACE PROCEDURE C
3、REATE OR REPLACE PROCEDURE schema.procedure_nameschema.procedure_namearg1 IN|OUT|IN OUT arg_type1,arg1 IN|OUT|IN OUT arg_type1,arg2 IN|OUT|IN OUT arg_type2,arg2 IN|OUT|IN OUT arg_type2,IS|ASIS|AS声明部分声明部分BEGINBEGIN执行部分执行部分EXCEPTIONEXCEPTION异常处理部分异常处理部分END END procedure_name;procedure_name;现在学习的是第5页,共
4、40页其中其中:OR RELACEOR RELACE是可选的。如果省略,则创建时不允许数据库是可选的。如果省略,则创建时不允许数据库中有同名的过程;如果使用,则会先删除同名的过程,然中有同名的过程;如果使用,则会先删除同名的过程,然后创建新的过程。后创建新的过程。Arg1,arg2,argnArg1,arg2,argn是过程的形参的名称,是可选的。是过程的形参的名称,是可选的。arg_type1arg_type1,arg_type2 arg_type2,,arg_typen,arg_typen是对应的型参的数据是对应的型参的数据类型。类型。注意:此处的数据类型后面不能带参数,即精注意:此处的数
5、据类型后面不能带参数,即精度、范围等,如度、范围等,如NUMBERNUMBER(1212,2 2)只能写成)只能写成NUMBERNUMBER。IN|OUT|IN OUTIN|OUT|IN OUT是形参的模式。如果省略则为是形参的模式。如果省略则为ININ模式。模式。现在学习的是第6页,共40页ININ用于接受调用程序的值用于接受调用程序的值默认的参数模式默认的参数模式OUTOUT用于向调用程序返回值用于向调用程序返回值 IN OUTIN OUT用于接受调用程序的值,并向调用程序返回更新的值用于接受调用程序的值,并向调用程序返回更新的值现在学习的是第7页,共40页例:例:不带参数的简单存储过程不
6、带参数的简单存储过程CREATE OR REPLACE PROCEDURE p ISCREATE OR REPLACE PROCEDURE p ISCREATE OR REPLACE PROCEDURE p ISCREATE OR REPLACE PROCEDURE p IS cursor c is cursor c is cursor c is cursor c is select*from emp where comm is null and sal2000 for update;select*from emp where comm is null and sal2000 for upda
7、te;select*from emp where comm is null and sal2000 for update;select*from emp where comm is null and salv_b)then v_ret:=v_a;else v_ret:=v_b;end if;v_temp:=v_temp+1;end;现在学习的是第11页,共40页主程序:主程序:declaredeclare v_a number;v_a number;v_b number;v_b number;v_ret number;v_ret number;v_temp number:=5;v_temp n
8、umber:=5;beginbegin p1(&v_ap1(&v_a的值的值,&v_b,&v_b的值的值,v_ret,v_temp);,v_ret,v_temp);dbms_output.put_line(v_ret);dbms_output.put_line(v_ret);dbms_output.put_line(v_temp);dbms_output.put_line(v_temp);end;end;现在学习的是第12页,共40页练一练练一练编写一个存储过程,可以根据用户输入的姓名编写一个存储过程,可以根据用户输入的姓名返回其所在的部门名称以及所在地,使用参数返回其所在的部门名称以及所在地
9、,使用参数传递。传递。在匿名块中调用该过程。在匿名块中调用该过程。现在学习的是第13页,共40页删除过程删除过程语法语法DROP PROCEDURE procedure_name;DROP PROCEDURE procedure_name;其中,其中,procedure_name procedure_name 是过程的名称。是过程的名称。示例示例Drop procedure find_emp;Drop procedure find_emp;现在学习的是第14页,共40页10.2 创建函数创建函数函数是一种数据库对象函数是一种数据库对象,同样也是一个命名的同样也是一个命名的PL/SQLPL/SQ
10、L程序程序块块,被存储在数据库中被存储在数据库中,可以被反复的使用可以被反复的使用.函数用来执行复杂的计算,并返回计算的结果。函数用来执行复杂的计算,并返回计算的结果。在调用的时候在调用的时候,可以被作为表达式的一部分。必须要可以被作为表达式的一部分。必须要有返回值。有返回值。这个返回值既可以是这个返回值既可以是numbernumber或或varchar2varchar2这这样简单的数据类型,也可以是样简单的数据类型,也可以是PL/SQLPL/SQL数组或对象这数组或对象这样复杂的数据类型。样复杂的数据类型。现在学习的是第15页,共40页CREATE OR REPLACE CREATE OR
11、REPLACE FUNCTION function nameFUNCTION function namearg1 IN|OUT|IN OUT arg_type1,arg1 IN|OUT|IN OUT arg_type1,arg2 IN|OUT|IN OUT arg_type2,arg2 IN|OUT|IN OUT arg_type2,RETURN return_typeRETURN return_typeIS|ASIS|AS声明部分声明部分BEGINBEGIN执行部分执行部分EXCEPTIONEXCEPTION异常处理部分异常处理部分END function name;END function
12、 name;其中:其中:RETURNRETURN子句说明函数返回值的数据类型子句说明函数返回值的数据类型。这是与过程。这是与过程的区别之一。的区别之一。现在学习的是第16页,共40页例:例:create or replace function create or replace function sal_tax(v_sal number)sal_tax(v_sal number)return number return number is isbeginbegin if v_sal2000 then if v_sal2000 then return 0.10;return 0.10;elsif
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 10 存储 过程 函数 触发器 优秀 PPT
限制150内