oracle存储过程
1.什么是存储过程
存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。
2.存储过程的优点
1.允许模块化程序设计,就是说只需要创建一次过程,以后在程序中就可以调用该过程任意次。
2.允许更快执行,如果某操作需要执行大量SQL语句或重复执行,存储过程比SQL语句执行的要快。
3.减少网络通信流量,一个需要使用数百条SQL去执行的语句,只需要发送一条执行语句,不需要去发送数百条sql语句。
4.更好的安全机制,对于没有权限执行存储过程的用户,也可授权他们执行存储过程。
5.可以更加安全,可以防止sql注入式攻击。
3.存储过程(procedure)和函数(function)的区别
1.function有返回值,并且可以直接在Query中引用function或者使用function的返回值.
2.本质上没有区别,都是PL/SQL程序,都可以有返回值。最根本的区别是:存储过程是命令,而函数是表达式的一部分。
3.package是function,procedure,variavles和sql语句的组合。package允许多个procedure使用同一个变量和游标。
创建procedure的语法:
一个简单的sql演示:
4.oracle存储过程的基本语法
1).基本结构
2).输出语句
3).赋值语句
4)select into statement
5). if语句
6).while语句
7). 用for in使用 cursor
8).带参数的 cursor
9).用pl/sql developer debug
连接数据库后建立一个Test WINDOW
在窗口输入调用sp的代码,F9开始debug,CTRL+N单步调试
10).pl/sql 中执行存储过程