存储过程:存储过程和函数也是一种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;
-----------------------------------------------------------------------------------------------资料来源于互联网由笔者整理。