数据库基础(基于达梦DM8)课件:存储过程的定义及管理.pptx
数据库基础(基于达梦DM8)
数据库程序设计
6.3存储过程的定义及管理0102调用存储过程定义存储过程03删除存储过程
6.3.1定义存储过程定义存储过程的语法如下所示:CREATE[ORREPLACE]PROCEDURE过程声明AS_OR_IS模块体
6.3.1定义存储过程过程声明的语法说明如下所示:过程声明::=存储过程名定义[WITHENCRYPTION][(参数名参数模式参数类型[默认值表达式]{,参数名参数模式参数类型[默认值表达式]})][调用权限子句]存储过程名定义::=[模式名.]存储过程名AS_OR_IS可以为AS或者IS,语法如下所示:AS_OR_IS::=AS|IS
6.3.1定义存储过程模块体的语法说明如下所示:模块体::=[声明部分]BEGIN执行部分[异常处理部分]END[存储过程名]声明部分::=[DECLARE]声明定义{声明定义}声明定义::=变量声明|异常变量声明|游标定义|子过程定义|子函数定义;执行部分::=DMSQL程序语句序列{;DMSQL程序语句序列}DMSQL程序语句序列::=[标号名]DMSQL程序语句;DMSQL程序语句::=SQL语句|控制语句异常处理部分::=EXCEPTION异常处理语句{;异常处理语句}
6.3.1定义存储过程可执行部分是存储过程的核心部分,由SQL语句和流控制语句构成。支持的SQL语句如下:数据查询语句(SELECT)数据操纵语句(INSERT、DELETE、UPDATE)游标定义及操纵语句(DECLARECURSOR、OPEN、FETCH、CLOSE)事务控制语句(COMMIT、ROLLBACK)动态SQL执行语句(EXECUTEIMMEDIATE)
6.3.1定义存储过程【案例6-7】在模式SCH_FACTORY下创建一个名为proc_1的存储过程,输入参数a及输出类型为INT。设置一个参数b类型为INT赋值为10,计算输入参数a与参数b的和并输出。CREATEORREPLACEPROCEDURESCH_FACTORY.proc_1(aINOUTINT)ASbINT:=10;BEGINa:=a+b;PRINTa;END;/
6.3.2调用存储过程对存储过程的调用可通过CALL语句来完成,也可以什么也不加直接通过名字及相应的参数执行即可,两种方式没有区别。
6.3.2调用存储过程【案例6-8】调用在【案例引用】中在模式SCH_FACOTRY下创建的proc_1的存储过程,参数为10。CALLSCH_FACOTRY.proc_1(10);SCH_FACOTRY.proc_1(10);
6.3.3删除存储过程当用户需要从数据库中删除一个存储过程时,可以使用存储过程删除语句。其语法如下所示:DROPPROCEDURE存储过程名定义;存储过程名定义::=[模式名.]存储过程名当模式名缺省时,默认为删除当前模式下的存储过程,否则,应指明存储模块所属的模式。除了DBA用户外,其他用户只能删除自己创建的存储过程。
6.3.3删除存储过程【案例6-9】删除在模式SCH_FACTORY下创建的名为proc_1的存储过程。DROPPROCEDURESCH_FACTORY.proc_1;