资源描述:
《0304_plsql编程简介3_过程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、OraclePL/SQL编程简介_过程一:过程:1.概念:1)定义:存储过程是模块化程序设计的基本概念,将一些相关的SQL语句,流程控件语句组合在一块,用于执行特定的操作或功能,过程有名称(非匿名),可以保存到数据库,可重复使用。2)特性:Ø具有单独执行,编绎能力(预编绎好)Ø速度快,但是耗资源Ø可以使用重复使用3)存储过程分类:Ø不带参数Ø带参数:输入参数,输出参数4)存储过程操作:Ø调用存储过程:call过程名(参数列表);Ø执行exec过程名(参数列表);注意:存储过程输出参数:不能使用ret
2、urn返回,反过来,在函数中就要return返回1.创建存储过程:1)创建:在定义一个存储过程参数时,不能指定CHAR类型和VARCHAR2类型形参的长度,也不能指定NUMBER形参的精度和标度。这些约束由实参来传递createorreplaceprocedure过程名(不带参数)createorreplaceprocedure过程名(变量名in类型,变量名out类型,)(带参数)AsBeginPLSQL语句End;/2)参数模式:ØIN模式:在程序运行时具有值,在过程体不能修改IN参数的值,默认模
3、式ØOUT模式:只能在过程体内部赋值ØINOUT模式:可以在行动时赋值,也可在过程体中修改此值3)调用过程:call过程名();---调用exec过程名();---执行1)删除过程:dropprocedure过程名;实例:--在sqlwindow中创建存储过程G:Workspacesql20101010_proc.sql--创建带number输入参数的存储过程proc_dept()setserveroutputon;createorreplaceprocedureproc_dept(v_dep
4、t_idinnumber)asv_dept_countnumber;--声明一个v_dept_count变量存放部门数beginselectcount(deptno)intov_dept_countfrommydeptwheredeptno=v_dept_id;--得到部门数量ifv_dept_count=0thendbms_output.put_line('新增部门、添加员工');insertintomydept(deptno,dname,loc)values(v_dept_id,'nc_dev'
5、,'nc');insertintomyemp(empno,ename,job,mgr,sal,comm,deptno)values(1001,'yanwg','CLERK',7902,100,1455,v_dept_id);commit;elsedbms_output.put_line(v_dept_id
6、
7、':部门已经存在!');endif;exceptionwhenothersthendbms_output.put_line('出错了');endproc_dept;/--在commandwind
8、ow中执行创建存储过程@G:Workspacesql20101010_proc.sql--调用存储过程callproc_dept(10);--执行存储过程execproc_dept(10);二:函数:函数:是命名了的、存储在数据库中的PL/SQL程序块。函数接受零个或多个输入参数、输出参数,用return语句返回值,返回值的数据类型在创建函数时定义。函数与过程的区别:存储过程函数可以独立编绎,执行只能在PL/SQL块调用,或者SQL查询中调用一定要有返回值三:包:包:其实就是被组合在一起的相关
9、对象的集合(规范)包体:对包里函数或过程声明的一个实现四:触发器:触发器:是一种特殊的存储过程.