oracle存储过程

依稀记得是类似于函数的一个东西,可以带参也可以不,可以有返回值也可以没有

同样使用的时候也需要调用。

存储过程的定义:

以命名的数据库对象形式存在数据库中,不在本地,所以存在数据库中,用户登进数据库都可以调用或修改代码。

创建存储过程需要我们的账户至少要拥有 CREATE 和 EXECUTE 存储过程的权限。存储过程由数据库提供安全保障,只有有权限的所有者的授权或者创建者本身才可以调用执行存储过程。

存储过程的信息时写入数据字典的,所以可以看作是一个公用模块。用户编写的PL/SQL程序或其他存储过程都可以调用它(但存储过程和函数不能调用PL/SQL程序)。一个重复使用的功能,可以设计成为存储过程。

像其他高级语言的过程和函数一样,可以传递参数给存储过程,参数的传递也有多种方式。存储过程可以有返回值,也可以没有返回值,存储过程的返回值必须通过参数带回;函数有一定的数据类型,像其他的标准函数一样,我们可以通过对函数名的调用返回函数值。

函数过程需要编译,以用来排除语法错误,只有编译通过才能调用

创建存储过程

create /replace procedure  存储过程名

 [(参数1 类型,参数2 out 类型……)] 

as 变量名 类型

begin

    程序代码体

end;

运用此语法我们创建了一个名为“procedure_name”的存储过程。首行的 replace 表示替换,对于Oracle的存储过程而言,我们只能创建 (create)、删除 (drop) 或替换 (replace) 它,没有类似于SQL Server的修改 (Alter) 操作。

as 与SQL Server中的Declare作用相似,但as不可省略,是固定语法,之后讲到参数的时候,我们就要在as和begin之间插入参数列表

begin 与 end 表示PL-SQL语句块的开始和结束,所有需要执行的语句都写在此处。end结束后,还需跟上 “/” 表示执行上述语句块,创建这个存储过程。

create or replace procedure examsp_query_cs as
begin
    dbms_output.put_line('Hello World');
end examsp_query_cs;
/

 

示例一:无参无返

create procedure p1

as 

begin 

dbms_output.put_line('hello world');

end;

--执行存储过程方式1--推荐此方式

set   serveroutput on;

begin

p1()

end;

--执行存储过程方式2
set serveroutput on;
execute p1();--只能在sqlplus中调用

--执行存储过程方式3

-- 通过 call 执行,可以在任意场合使用,无论有没有参数都要写括号,在括号中写入参数 call proc_name([ param_1, param_2... ]);

  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值