当前位置:首页 > 开发 > 数据库 > 正文

oracle-存储过程(procedure)

发表于: 2014-10-30   作者:每一天都有收获   来源:转载   浏览:
摘要: 存储过程 --可以理解为给匿名块起个名字,可以保存到数据库服务器上,方便以后的应用。 --预编译(已经编译好的)sql语句。 ---oracle语句也是要先编译在运行的语言。所以说编译好了,就可以直接运行了,节约了再次编译的时间。 ------------------- 写一个存储过程: 将pl/sql语句块改写成存储过程   &
存储过程

--可以理解为给匿名块起个名字,可以保存到数据库服务器上,方便以后的应用。

--预编译(已经编译好的)sql语句。

---oracle语句也是要先编译在运行的语言。所以说编译好了,就可以直接运行了,节约了再次编译的时间。

-------------------

写一个存储过程:

将pl/sql语句块改写成存储过程

    1.将declare改成is 或者 as

    2.加一个存储过程的定义头


create or replace procedure pro_名
is
//声明部分
begin
//执行部分
end;

    查看过程,确保过程正确建立。

使用存储过程:

  begin
pro_名(参数列表);
  end;

   或者

  在命令窗口用 execute pro_名(参数列表);

查看存储过程错误信息

1. pl/sql 

procedures

2.命令窗口

show error

----------------------------
带参数的过程:

  参数的写法:变量名   输入/输出  变量类型

  参数的类型不要写成 number(10) 要写成number;   varchar2也不要写长度

  输入参数 在过程里 是不可以被修改的。

  输出参数 不能输入,只能在过程中给赋值

  若是既要能输入又要能输出呢--- v_a in out number

  过程没有返回值,但是有输出参数。同样可以返回信息

  create or replace procedure pro_get_bigger(v_a in number,v_b in number,v_bigger in out number)
  is
  begin
if(v_a > v_b) then
v_bigger :=v_a;
else
v_bigger :=v_b;
end if;
  end;

----

  declare
v_a number(10) := 40;
v_b number(10) :=20;
v_bigger number(10);
  begin
pro_get_bigger(v_a,v_b,v_bigger);
  end;

--重点:得到update影响的函数


  隐士游标的使用 

  SQL%rowcount--获取一个number类型的返回值,最后一条语句影响的行数。

---------------------------------------------

函数与过程的区别:

1.函数有返回值,过程没有返回值,但是可以通过输出参数实现返回值得功能‘

2.在sql语句中函数一般实现一些稍复杂的计算功能

   存储过程主要完成独立过程。

----------------------------------------

函数

1.分 内置函数  自定义函数

oracle-存储过程(procedure)

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
procedure带有名字的pl/sql程序块 exec p;执行刚创建的存储过程 说得简单点 就是create or replace
什么是存储过程? 存储过程(procedure)类似于C语言中的函数 用来执行管理任务或应用复杂的业务规
SQL存储过程(Stored Procedure) 什么是存储过程? 存储过程(procedure)类似于C语言中的函数 用
1. 返回值的区别,函数有1个返回值,而存储过程是通过参数返回的,可以有多个或者没有 2.调用的区别,函
用户反映,系统操作日志会使用数据库快速增大,情况可参考下图, 问题分析,整个系统每个页面,都有
1. 返回值的区别,函数有1个返回值,而存储过程是通过参数返回的,可以有多个或者没有 2.调用的区别,函
前言 转载请标明出处:http://blog.csdn.net/wlwlwlwl015/article/details/43022193,上一篇blog记
最近特别忙,连上网的时间都没有。今天把ORACLE的存储结构介绍一下。 ORACEL数据库中的数据逻辑存储
过程(procedure)和函数(function): 过程和函数都以编译后的形式存放在数据库中,函数可以没有参数
将一些固定的操作集中起来由SQL服务器来完成,实现某个特定任务,这就是存储过程。 存储过程是SQL语
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号