存储过程是由流控制和SQL语句书写的过程,这个过程经过编译和优化,后存储在数据库服务器中,使用时只要调用即可。在Oracle中若干个有联系的存储的过程可以组合在一起构成一个程序包。
存储过程有以下的优点:
存储过程的能力大大增强了SQL语言的功能和灵活性,存储过程可以用流控制语句进行编写,有很强的灵活性,可以完成复杂的判断和较复杂的运算。
可保证数据的安全性和完整性
通过存储过程可以使没有权限的用户在控制之下间接地存取数据。
通过存储过程可以使相关的动作在一起发生从而可以维护数据的完整性。
在运行存储过程前,数据库已经对其进行了语法和句法的分析,并且优化执行方案。这种已经编译好了的过程可以极大地改善SQL语句的性能。由于优化SQL语句的大部分工作已经完成,所以存储过程能以极快地速度运行。
可以降低网络的通信量。
使体现企业规则的运算程序放入数据库服务器中,以便:
集中控制
当企业规则发生变化时在服务器中改变存储过程即可,无需修改任何的应用程序。企业规则的特点是经常要变化,如果把体现企业规则的运算程序放入应用程序中,当企业规则发生变化时,就需要修改应用程序的工作量就非常的大(修改、安装、发行应用程序)。如果把体现企业规则的运算放入存储过程中,则当企业规则发生变化时只要修改存储规则就行了,应用程序无需任何的变化。
不同的数据库存储过程写法不一。