商业规则和业务逻辑可以通过程序存储在oracle中,这个程序就是存储过程。
存储过程是SQL, PL/SQL, JAVA 语句的组合, 它使你能将执行商业规则的代码从从你的应用程序中移动到数据库。这样的结果就是,代码存储一次但是能够被多个程序使用。
要创建一个 过程对象(procedural object),必须有 CREATE PROCEDURE 系统权限。如果这个过程对象需要被其他的用户schema 使用,那么你必须有 CREATE ANY PROCEDURE 权限。
执行 procedure 的时候,可能需要excute权限。或者EXCUTE ANY PROCEDURE 权限。
如果单独赋予权限,如下例所示: grant execute on MY_PROCEDURE to Jelly
调用一个存储过程的例子: execute MY_PROCEDURE( 'ONE PARAMETER');
PROCEDURE 和 FUNCTION 的区别。 function有返回值,并且可以直接在Query中引用function和或者使用function的返回值。
PACKAGE 是function,procedure,variables 和sql 语句的组合。package允许多个procedure使用同一个变量和游标。
创建 procedure的语法:
CREATE [ OR REPLACE ] PROCEDURE [ schema.]procedure
[(argument [IN | OUT | IN OUT ] [NO COPY] datatype
[, argument [IN | OUT | IN OUT ] [NO COPY] datatype]...
)]
[ authid { current_user | definer }]
{ is | as } { pl/sql_subprogram_body |
language { java name 'String' | c [ name, name] library lib_name
}]
sql 代码
- CREATE PROCEDURE sam.credit (acc_no IN NUMBER, amount IN NUMBER) AS
- BEGIN
- UPDATE accounts
- SET balance = balance + amount
- WHERE account_id = acc_no;
- END;
可以使用 create or replace procedure 语句, 这个语句的用处在于,你之前赋予的excute权限都将被保留。
IN, OUT, IN OUT 用来修饰参数。IN 表示这个变量必须被调用者赋值然后传入到PROCEDURE进行处理。OUT 表示PRCEDURE 通过这个变量将值传回给调用者。IN OUT 则是这两种的组合。
authid代表两种权限: 定义者权限(difiner right 默认),执行者权限(invoker right)。定义者权限说明这个procedure中涉及的表,视图等对象所需要的权限只要定义者拥有权限的话就可以访问。执行者权限则需要调用这个procedure的用户拥有相关表和对象的权限。
分享到:
- 2007-03-16 12:23
- 浏览 3840
- 评论(0)
- 论坛回复 / 浏览 (0 / 7522)
- 查看更多
相关推荐
本文将从 Oracle 存储过程的基础知识开始,逐步深入到 Oracle 存储过程的高级应用,包括 Hibernate 调用 Oracle 存储过程和 Java 调用 Oracle 存储过程的方法。 Oracle 存储过程基础知识 Oracle 存储过程是 Oracle...
#### Oracle存储过程基础知识与实践 Oracle存储过程是SQL与PL/SQL结合的强大功能,用于封装复杂的数据操作逻辑于数据库内部,从而实现高效的事务处理和数据管理。以下是对Oracle存储过程的一些关键知识点的深入解析...
Oracle 存储过程基础知识包括了解 Oracle 存储过程的基本语法和结构。Oracle 存储过程的基本语法包括 PROCEDURE、FUNCTION 和 PACKAGE 等。PROCEDURE 是最基本的存储过程单元,FUNCTION 是带返回值的存储过程,而 ...
**Oracle存储过程基础知识** Oracle存储过程是由一系列SQL和PL/SQL语句组成的程序单元,它可以在数据库服务器端执行。存储过程可以接受输入参数,返回输出结果,甚至处理异常。它们被编译一次,然后存储在数据库中,...
### Oracle 存储过程基础知识 存储过程是由一系列SQL和PL/SQL语句组成的,它们在数据库服务器上执行。通过定义参数,存储过程可以接受输入值,处理这些值,然后返回结果。这使得存储过程成为实现商业逻辑的理想选择...
下面我们将深入探讨Oracle存储过程的基础知识、基本语法以及在实际应用中的一些常见问题和调用方式。 1. **Oracle存储过程基础知识** - 存储过程是一组为了完成特定功能的SQL和PL/SQL语句集合,它们被预先编译并...
本文将深入探讨Oracle存储过程的基础知识、基本语法以及在实际应用中可能遇到的问题及其解决方法。 1. Oracle 存储过程基础知识: - 存储过程分为无参数、带参数和带有返回值的存储过程。 - 存储过程可以包含数据...
这篇教程将深入讲解Oracle存储过程的各个方面,帮助你从基础到高级全面掌握这一技能。 一、存储过程的基本概念 存储过程是Oracle数据库中的一组有序的PL/SQL语句,可以包含变量声明、条件判断、循环结构以及SQL操作...
1. **Oracle 存储过程基础知识**:这部分介绍了存储过程的概念,它允许将一组相关的操作打包在一起,便于重用和管理。存储过程可以包含DML(数据操纵语言),DDL(数据定义语言)以及PL/SQL控制结构,如条件判断和...
**Oracle存储过程基础知识** Oracle存储过程是由一系列的SQL和PL/SQL语句组成的,它们被存储在数据库中并可以按需调用。PL/SQL是Oracle专有的编程语言,它扩展了SQL的功能,包括控制结构、变量、函数和异常处理。 *...
这个"ORACLE存储过程学习源码"集合包含了从基础到高级的30个示例,是学习和掌握Oracle存储过程的理想资源。下面,我们将深入探讨存储过程的基本概念、结构、类型,以及如何通过这些源码进行学习。 1. **存储过程的...
下面我们将深入探讨Oracle PL/SQL存储过程的基础知识、基本语法以及一些常见问题。 **Oracle 存储过程基础知识** 1. **定义与创建**:存储过程由一系列的PL/SQL语句组成,包括变量声明、控制结构、SQL语句等,通过...
1. **Oracle 存储过程基础知识** - 存储过程由PL/SQL(Procedural Language/SQL)编写,它结合了SQL的查询能力与编程语言的控制结构。 - 存储过程可以接受参数,这些参数可以在调用时传递值进去,使得过程具有灵活...
#### Oracle存储过程基础知识 存储过程是数据库中预编译好的一段SQL或PL/SQL代码,它可以接受输入参数并返回结果,从而实现复杂的功能逻辑。存储过程的主要优势包括提高性能(因为它们在数据库级别执行)、减少网络...
下面将详细讨论Oracle存储过程的基础知识、基本语法以及一些常见问题。 **Oracle存储过程基础知识** 1. **创建存储过程**:使用`CREATE PROCEDURE`语句创建存储过程,其中包含参数声明、过程体和权限设置。 2. **...
Oracle存储过程是数据库管理系统Oracle中的一个重要特性,它允许开发者编写一系列的SQL和PL/SQL语句,形成一个可重复使用的程序单元。这个“Oracle存储过程案例”提供了丰富的学习材料,帮助用户从入门到精通掌握...
#### 一、Oracle存储过程基础知识 **1. 商业规则与业务逻辑的实现** - **定义**: 存储过程是存储在Oracle数据库中的可执行程序单元,通常用于封装复杂的业务逻辑或数据操作任务。 - **组成元素**: 存储过程可以...