存储过程--基础篇

 1 定义

存储过程,百度百科上是这样解释的,存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来调用存储过程。

简单的说就是专门干一件事一段sql语句。可以由数据库自己去调用,也可以由java程序去调用。在oracle数据库中存储过程是procedure。

2 优势

1.效率高

        存储过程编译一次后,就会存到数据库,每次调用时都直接执行。而普通的sql语句我们要保存到其他地方(例如:记事本 上),都要先分析编译才会执行。所以想对而言存储过程效率更高。

2.降低网络流量   

存储过程编译好会放在数据库,我们在远程调用时,不会传输大量的字符串类型的sql语句。

3.复用性高

存储过程往往是针对一个特定的功能编写的,当再需要完成这个特定的功能时,可以再次调用该存储过程。

4.可维护性高

        当功能要求发生小的变化时,修改之前的存储过程比较容易,花费精力少。

5.安全性高

完成某个特定功能的存储过程一般只有特定的用户可以使用,具有使用身份限制,更安全。

3 形式

基本结构

存储过程包含三部分:过程声明,执行过程部分,存储过程异常(可写可不写,要增强脚本的容错性和调试的方便性那就写上异常处理)

样例

3.1 无参存储过程

3.2 带参存储过程

注:第10行:param1 是参数,类型和student表id字段的类型一样。

第11行:声明变量name,类型是student表name字段的类型(同上)。

第12行:声明变量age,类型数数字,初始化为20

3.3 带参数的存储过程并且进行赋值

其中参数IN表示输入参数,是参数的默认模式。
OUT表示返回值参数,类型可以使用任意Oracle中的合法类型。
OUT模式定义的参数只能在过程体内部赋值,表示该参数可以将某个值传递回调用他的过程
IN OUT表示该参数可以向该过程中传递值,也可以将某个值传出去

第4行:查询语句,把参数s_age作为过滤条件,INTO关键字,把查到的结果赋给total变量。

第5行:输出查询结果,在数据库中“||”用来连接字符串

第6—9行:做异常处理

4 基本语法

4.1运算符

4.2 SELECT INTO STATEMENT 语句

 4.3 选择语句

IF..END IF

 IF..ELSE..END IF

  4.4 循环语句

基本循环

while 循环

 for循环

 4.5 游标

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值