资源描述:
《oracle数据库入门教程》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Oracle数据库入门教程子程序是已经命名的PLSQL块,他们存储在数据库中,可以为他们指定参数,可以在客户端和应用程序中调用它们。子程序包括存储过程和函数,程序包是存储过程和函数的集合。存储过程--语法:CREATE[ORREPLACE]PROCEDUREprocedure_name[(parameter_list)]{IS
2、AS}[local_declarations]BEGINexecutable_statements[EXCEPTIONexception_handlers]END[procedur
3、e_name];语法说明:procedure_name是过程名字parameter_list是参数列表local_declarations是局部声明executable_statements是可执行语句,execption_handlers是异常处理程序-------createorreplaceprocedurewyd_print(timesnumber)isinumber:=0;beginloopi:=i+1;DBMS_OUTPUT.PUT_LINE('第'
4、
5、i
6、
7、'次循环!!');exitwhen
8、i>=times;endloop;end;/直接调用存储过程:execwyd_print(20)executewyd_print(30);过程参数模式调用程序是通过参数向被调用的过程传递值的。参数传递的模式有3种:IN,OUT,INOUT。也就是输入,输出,输入输出定义过程参数的语法:parameter_name[IN
9、OUT
10、INOUT]datatype[{:=
11、DEFAULT}expression]参数IN模式是默认模式如果要指定OUT
12、INOUT模式参数要明确指定---------实例:CREATE
13、ORREPLACEPROCEDUREmypar(aINnumber,bOUTnumber,cINOUTnumber)ISBEGINDBMS_OUTPUT.PUT_LINE('a-->'
14、
15、a);DBMS_OUTPUT.PUT_LINE('b-->'
16、
17、b);DBMS_OUTPUT.PUT_LINE('c-->'
18、
19、c);--a:=111;b:=222;c:=333;DBMS_OUTPUT.PUT_LINE('a-->'
20、
21、a);DBMS_OUTPUT.PUT_LINE('b-->'
22、
23、b);DBMS_OU
24、TPUT.PUT_LINE('c-->'
25、
26、c);ENDmypar;/-----declareaanumber:=11;bbnumber:=22;ccnumber:=33;beginDBMS_OUTPUT.PUT_LINE('beforeaa-->'
27、
28、aa);DBMS_OUTPUT.PUT_LINE('beforebb-->'
29、
30、bb);DBMS_OUTPUT.PUT_LINE('beforecc-->'
31、
32、cc);mypar(aa,88,cc);DBMS_OUTPUT.PUT_LINE('aftera
33、a-->'
34、
35、aa);DBMS_OUTPUT.PUT_LINE('afterbb-->'
36、
37、bb);DBMS_OUTPUT.PUT_LINE('aftercc-->'
38、
39、cc);end;/注意几点:(1)IN类型参数在过程中不能再给赋值(2)OUTINOUT类型可以进入后赋值。(3)OUT类型参数在调用过程传入参数时无效,(4)OUT,INOUT类型参数在调用过程时传入的必须是变量---------一个过程创建了,将执行权限授予其他用户语法:GRANTEXECUTEONprocedure_nameTOUS
40、ER_Name;//授权给特定用户执行过程的权限GRANTEXECUTEONprocedure_nameTOpublic;//授权给所有数据库用户执行过程的权限查看数据库里面的存储过程:selectobject_namefromuser_objectswhereobject_type='PROCEDURE';selectsubstr(object_name,1,20)object_name,object_typefromuser_objectswhereobject_type='PROCEDURE';se
41、lectsubstr(object_name,1,10)object_name,object_typefromuser_objects;删除一个过程:DROPprocedureprocedure_name;___________________________________________________________________________________函数的定义和使用_____________________