ORACLE数据库的存储过程
- 存储过程概念:PL/SQL是将一个个PLSQL的业务处理过程存储起来进行服用,这些被存储起来的PLSQL程序被称之为存储过程。
- 存储过程作用:在开发程序中,为了一个特定的业务功能,会向数据库进行多次连接关闭(连接和关闭是很消耗资源的)需要对数据库进行多次的I/O读写,性能比较低,如果把这些业务放到PLSQL中,在应用程序中只需要调用PLSQL就可以做到连接关闭一次数据库就可以实现我们的业务,可以大大提高了效率。
语法
`create or replace procedure 过程名称[(参数列表)] is
BEGIN
END[过程名称]`
PLSQL具体使用
- PLSQL编程常见变量分为两大类
-
1.普通数据类型(char,varchar,date,number,boolean,long)
-
2.特殊变量类型(引用变量,记录型变量)
- 声明变量方式
1.变量名 变量类型(变量长度) 例如 v_OrderId varchar2(100) - 变量赋值方式的两种方式
i.直接赋值使用:= 例如:v_orderId := ‘5201314’;
ii.语句赋值,使用select 。。。into。。。赋值: (语法:select 值 into 变量)
实例
2.引用型变量使用和申明
解释:变量类型和长度取决于表中字段的类型和长度.
语法: 通过 表名.列名%TYPE来指定变量类型的类型和长度。 例如: v_orderId T_TP_DRIVER_PRICE.ORDER%TYPE
实例
引用类型变量的好处: 使用普通变量定义方式,需要知道表中列的类型,而使用引用类型,不需要考虑表中列的类型使用%TYPE时一个很好的编程风格,因此推荐使用。 - 3.记录型变量
解释;接受表中一整行的记录,相当于java中的一个对象。
语法:变量名称 表名%TYPE, 例如: v_orderId T_TP_DRIVER_PRICE%rowtype;
实例
注记录型变量慎用,用为查询的字段较多,会增加数据库的压力,因此在合适的场景使用。 - PL/SQL流程控制语句
- 语法:
Begin
If 条件1 then 执行1
Elsif 条件2 then 执行2
Else 执行3
End
end
实例
循环
循环Loop
语法:
Begin
Loop
Exit when 退出循环
End Loop;
end
实例
游标的使用(类似java中的集合)
- 什么是游标?
游标就是一个临时存储一个查询返回的多行数据(结果集,类似java的jdbc连接返回的ResultSet集合),通过遍历游标,可以逐行进行访问处理该结果集的数据。
游标使用步骤: 声明–>打开–>读取–>关闭
语法
游标声明:
CURSOR 游标名(参数列表) IS 查询语句;
游标打开:
OPEN 游标名;
游标读取:
FETCH 游标名 INTO 变量列表;
游标关闭:
CLOSE 游标名;
游标属性
注:%NOTFOUND是在游标中找不到元素的时候返回TRUE,通常用来判断退出循环。
实例
- 有参数游标使用
在申明游标时候给定参数,根据给定的参数进行查询遍历
实例
注:%NOTFOUND属性默认值为FLASE,所以在循环中国注意判断条件的位置,如果先判断在FETCH会导致最后一条记录的值被打印两次(多循环默认);
以上纯属个人见解,如有不同意见的朋友评论区留言补充交流