Oracle——存储过程、函数

存储过程和函数

存储过程和函数在Oracle中被称为子程序,是指被命名的PL/SQL块,这种块可以带有参数,可以被多次调用。

存储过程用于执行特定操作,而函数则用于返回特定的数据。

存储过程是存储在数据库中的有名字的PL/SQL程序块,接受零个或多个参数作为输入(INPUT)或输出(OUTPUT)、或既作输入又作输出(INOUT); 函数也是命名了的、存储在数据库中的PL/SQL程序块。函数接受零个或多个输入参数,必须有一个返回值,返回值的数据类型在创建函数时定义。

1. 存储过程(用于执行特定操作)

创建存储过程语法格式:

create [or replace] procedure 存储过程名 (

     参数1 输入或者输出 参数类型,

     参数2 输入或者输出 参数类型,   ...

)

     is (或 as )

    begin

        PL/SQL块

    end;

·is或者as用于开始一个PL/SQL块。需要注意的是:当指定参数数据类型的时候,不能指定其长度。

·create or replace可以同时存在,如果存储过程已经存在则替代存储过程,如果不存在则创建。

删除存储过程:drop procedure 存储过程名;

1.1 不带参数的存储过程

Oracle——存储过程、函数

1.2 带输入参数的存储过程

Oracle——存储过程、函数

1.3 带输出参数的存储过程

Oracle——存储过程、函数

对于带有输出参数的存储过程,在调用的时候,必须要定义变量接收输出参数的数据。

Oracle——存储过程、函数

1.4 所带的参数既输入又输出

Oracle——存储过程、函数

2. 函数(用于返回特定的数据)

创建函数语法格式:

create [or replace] function 函数名 (

     参数1 [参数类型] 数据类型,

     参数2 [参数类型] 数据类型,     … 

)

return 数据类型

     is (或 as )

        PL/SQL块

·指定参数数据类型的时候,不能指定其长度,return子句用于指定函数返回值的数据类型。

·is或者as用于开始一个PL/SQL块。参数类型有in表示输入参数,默认为in,out表示输出参数,还可以是输入输出参数in out。

删除函数:drop function 函数名;

例:定义一个函数,查找指定的表中有多少条数据

Oracle——存储过程、函数

调用函数的限制

Oracle——存储过程、函数