Oracle存储过程基础知识

商业规则和业务逻辑可以通过程序存储在oracle中,这个程序就是存储过程。

存储过程是sql、pl/sql、java语句的组合,它使你能够执行商业规则的代码从你的应用程序中移动到数据库。这样的结果就是:“代码存储一次但是能够被多个程序使用”。

要创建一个过程对象(procedural object),必须有create procedural 系统权限,。如果这个过程对象需要被其他的用户schema使用,那么你必须有create any procedural 权限。执行procedural的时候,可能需要execute权限。或者execute any procedural权限。

如果单独赋予权限,如下例所示:

grant execute on MY_PROCEDURE TO Tuxer

调用一个存储过程的例子:

execute MY_PROCEDURE ('ONE PARAMETER');

存储过程(procedure)和函数(function)的区别:

function 有返回值,并且可以直接在Query中引用function和或者使用function的返回值。

本质上没有区别,都是pl/sql程序,都可以有返回值,最根本的区别是:存储过程是命令,而函数是表达式的一部分。

比如:select max(name) from table

但是不能exec max(name)如果此时max是函数。

package 是function。procedure,variables和sql语句的组合。package允许多个procedure使用同一个变量和游标。

posted @ 2013-03-21 12:54  天空之上、只有蓝黑  阅读(265)  评论(0)    收藏  举报