oracle 存储过程与函数

存储过程:存储过程和函数也是一种PL/SQL 块,是存入数据库的PL/SQL 块。

但存储过程不同于已经介绍过的PL/SQL 程序,我们通常把PL/SQL 程序称为无名块,而存储过程是以命名的方式存储于数据库中的。

创建存储过程,需要有CREATE PROCEDURE 或CREATE ANY PROCEDURE 的系统权限。

语法:

CREATE [OR REPLACE] PROCEDURE 存储过程名[(参数[IN|OUT|IN OUT] 数据类型...)]

{AS|IS}

[说明部分]

BEGIN

可执行部分

[EXCEPTION 错误处理部分]

END [过程名];

IN 定义一个输入参数变量,用于传递参数给存储过程

OUT 定义一个输出参数变量,用于从存储过程获取数据

IN OUT 定义一个输入、输出参数变量,兼有以上两者的功能

参数的定义形式和作用如下:

参数名IN 数据类型DEFAULT 值

参数名OUT 数据类型

参数名IN OUT 数据类型DEFAULT 值

如果省略IN、OUT 或IN OUT,则默认模式是IN。

在存储过程中声明变量,但这里不能写declare来定义,直接写即可

调用存储过程:

方法1:

EXECUTE 模式名.存储过程名[(参数...)];

方法2:

BEGIN

模式名.存储过程名[(参数...)];

END;

删除存储过程:DROP PROCEDURE 存储过程名;

删除存储过程的人是过程的创建者或者拥有DROP ANY PROCEDURE 系统权限的人

函数:

创建函数,需要有CREATE PROCEDURE 或CREATE ANY PROCEDURE 的系统权限。该权限可

由系统管理员授予。创建存储函数的语法和创建存储过程的类似,即

CREATE [OR REPLACE] FUNCTION 函数名[(参数[IN] 数据类型...)]

RETURN 数据类型

{AS|IS}

[说明部分]

BEGIN

可执行部分

RETURN (表达式)

[EXCEPTION 错误处理部分]

END [函数名];

其中,参数是可选的,但只能是IN 类型(IN 关键字可以省略)。

在定义部分的RETURN 数据类型,用来表示函数的数据类型,也就是返回值的类型,此部分不可省

略。

在可执行部分的RETURN(表达式),用来生成函数的返回值,其表达式的类型应该和定义部分说

明的函数返回值的数据类型一致。在函数的执行部分可以有多个RETURN 语句,但只有一个RETURN

语句会被执行,一旦执行了RETURN 语句,则函数结束并返回调用环境。

删除函数语法:DROP FUNCTION 函数名;

但删除的人应是函数的创建者或者是拥有DROP ANY PROCEDURE 系统权限的人。

 

注意:如果要在屏幕上输出信息,需要将serveroutput开关打开

setserveroutput on;

 -----------------------------------------------------------------------------------------------资料来源于互联网由笔者整理。

你可能感兴趣的:(oracle,exception,数据库,互联网,function,存储)