oracle的存储过程写法Oracle中如何写存储过程

​​Oracle的存储过程基本写法​​

Oracle存储过程简介:

  存储过程是事先经过编译并存储在数据库中的一段SQL语句的集合,调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。

优点:

  • 允许模块化程序设计,就是说只需要创建一次过程,以后在程序中就可以调用该过程任意次。
  • 允许更快执行,如果某操作需要执行大量SQL语句或重复执行,存储过程比SQL语句执行的要快。
  • 减少网络流量,例如一个需要数百行的SQL代码的操作有一条执行语句完成,不需要在网络中发送数百行代码。
  • 更好的安全机制,对于没有权限执行存储过程的用户,也可授权他们执行存储过程。  

1.2,创建存储过程的语法:

  create [or replace] procedure 存储过程名(param1 in type,param2 out type)
as
变量1 类型(值范围);
变量2 类型(值范围);
begin
select count(*) into 变量1 from 表A where列名=param1;
if (判断条件) then
select 列名 into 变量2 from 表A where列名=param1;
dbms_output.Put_line('打印信息');
elsif (判断条件) then
dbms_output.Put_line('打印信息');
else
raise 异常名(NO_DATA_FOUND);
end if;
exception
when others then
rollback;
end;

参数的几种类型:

       in 是参数的默认模式,这种模式就是在程序运行的时候已经具有值,在程序体中值不会改变。

       out 模式定义的参数只能在过程体内部赋值,表示该参数可以将某个值传递回调用他的过程       in out 表示高参数可以向该过程中传递值,也可以将某个值传出去

创建和运行简单的存储过程

>举个​存储过程栗子----【创建一个存储过程,该存储过程实现向dept表中插入一条记录】(首先记得自己建一张表,这里不再演示了)

create​ ​[or replace] procedure pro_insertDept is

begin

insert into dept values(77,'市场拓展部','8');

commit;

dbms_output.put_line('插入新纪录成功!');

end pro_insertDept;

执行Execute之后,

从上面的结果看出,我们已经顺利的创建出了存储过程pro_insertDept。【如果没有创建成功的话,可以使用show error命令查看错误信息。】

》》如果在我们创建之前,就已经有这个同名的存储过程了,那么应该怎么处理呢?【两种方法】

  ①修改现有的存储过程名称,重新创建

  ②使用字段中“OR Replcae"关键字创建一个同名的存储过程覆盖已经存在的存储过程。实际使用不加中括号,这里只是表示可有可无;

      表示已经存在的话覆盖后,创建存储过程;没有的话,直接创建存储过程。

总结:

存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,它存储在数据库中,一次编译后永久有效,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象。在数据量特别庞大的情况下利用存储过程能达到倍速的效率提升。

本文链接:https://my.lmcjl.com/post/12653.html

展开阅读全文

4 评论

留下您的评论.