1. Oracle存储过程包含三部分:过程声明,执行过程部分,存储过程异常。
  2.  
  3. Oracle存储过程可以有无参数存储过程和带参数存储过程。
  4. 一、无参程序过程语法
  5.  
  6. 1 create or replace procedure NoParPro
  7. 2 as ;
  8. 3 begin
  9. 4 ;
  10. 5 exception //存储过程异常
  11. 6 ;
  12. 7 end;
  13. 8
  14. 二、带参存储过程实例
  15. 1 create or replace procedure queryempname(sfindno emp.empno%type) as
  16. 2 sName emp.ename%type;
  17. 3 sjob emp.job%type;
  18. 4 begin
  19. 5 ....
  20. 7 exception
  21. ....
  22. 14 end;
  23. 15
  24. 三、 带参数存储过程含赋值方式 1 create or replace procedure runbyparmeters (isal in emp.sal%type,
  25. sname out varchar,sjob in out varchar)
  26. 2 as icount number;
  27. 3 begin
  28. 4 select count(*) into icount from emp where sal>isal and job=sjob;
  29. 5 if icount=1 then
  30. 6 ....
  31. 9 else
  32. 10 ....
  33. 12 end if;
  34. 13 exception
  35. 14 when too_many_rows then
  36. 15 DBMS_OUTPUT.PUT_LINE('返回值多于1行');
  37. 16 when others then
  38. 17 DBMS_OUTPUT.PUT_LINE('在RUNBYPARMETERS过程中出错!');
  39. 18 end;
  40. 19
  41. 四、在Oracle中对存储过程的调用
  42. 过程调用方式一
  43. 1 declare
  44. 2 realsal emp.sal%type;
  45. 3 realname varchar(40);
  46. 4 realjob varchar(40);
  47. 5 begin //存储过程调用开始
  48. 6 realsal:=1100;
  49. 7 realname:='';
  50. 8 realjob:='CLERK';
  51. 9 runbyparmeters(realsal,realname,realjob); --必须按顺序
  52. 10 DBMS_OUTPUT.PUT_LINE(REALNAME||' '||REALJOB);
  53. 11 END; //过程调用结束
  54. 12
  55. 过程调用方式二
  56. 1 declare
  57. 2 realsal emp.sal%type;
  58. 3 realname varchar(40);
  59. 4 realjob varchar(40);
  60. 5 begin //过程调用开始
  61. 6 realsal:=1100;
  62. 7 realname:='';
  63. 8 realjob:='CLERK';
  64. 9 runbyparmeters(sname=>realname,isal=>realsal,sjob=>realjob); --指定值对应变量顺序可变
  65. 10 DBMS_OUTPUT.PUT_LINE(REALNAME||' '||REALJOB);
  66. 11 END; //过程调用结束
  67. 12

  

Oracle存储过程 --3的更多相关文章

  1. oracle 存储过程

    来自:http://www.jb51.net/article/31805.htm Oracle存储过程基本语法 存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 I ...

  2. Oracle存储过程语法

    原文链接:http://www.jb51.net/article/31805.htm Oracle存储过程基本语法 存储过程  1 CREATE OR REPLACE PROCEDURE 存储过程名  ...

  3. ORACLE存储过程调用Web Service

    1. 概述 最近在ESB项目中,客户在各个系统之间的服务调用大多都是在oracle存储过程中进行的,本文就oracle存储过程调用web service来进行说明.其他主流数据库,比如mysql和sq ...

  4. Oracle存储过程基本语法介绍

    Oracle存储过程基本语法 存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 IS 3 BEGIN 4 NULL; 5 END; 行1: CREATE OR RE ...

  5. MyBatis调用Oracle存储过程

    MyBatis调用Oracle存储过程 1.无输入和输出参数的存储过程 2.带有输入和输出参数的存储过程 3.返回游标的存储过程 mybatis中的配置文件代码 <resultMap type= ...

  6. Oracle存储过程(转)

    Oracle存储过程基本语法 存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 IS 3 BEGIN 4 NULL; 5 END; 行1: CREATE OR RE ...

  7. Oracle存储过程中异常Exception的捕捉和处理

    Oracle存储过程中异常的捕捉和处理 CREATE OR REPLACE Procedure Proc_error_process ( v_IN in Varchar2, v_OUT Out Var ...

  8. Oracle存储过程动态创建临时表/存储过程执行权限问题--AUTHID CURRENT_USER

    关于Oracle存储过程执行权限问题的解决 http://blog.sina.com.cn/s/blog_6ceed3280101hvlo.html (2014-04-02 04:06:28) 转载▼ ...

  9. ORACLE存储过程学习

    存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 IS 3 BEGIN 4 NULL; 5 END; 行1: CREATE OR REPLACE PROCEDURE ...

  10. C# 获取 oracle 存储过程的 返回值1

    /// <summary> /// 返回对应表的模拟自增字段值 /// </summary> /// <param name="tablename"& ...

随机推荐

  1. php代码优化技巧

    搬运: 1. 尽量采用大量的PHP内置函数. 2. echo 比print 快. 3. 不要把方法细分得过多,仔细想想你真正打算重用的是哪些代码? 4. 在执行for循环之前确定最大循环数,不要每循环 ...

  2. JAVA跑马灯实现1

    <TextView        android:layout_width="wrap_content"        android:layout_height=" ...

  3. javascript权威指南第6版学习笔记

    javascript权威指南第6版学习笔记 javascript数组.函数是特殊对象 看一点少一点. 3.1.4 hello.js内容是 var x=.3-.2;var y=.2-.1 console ...

  4. Android Animation学习 实现 IOS 滤镜退出动画

    IOS的用户体验做的很好,其中一点很重要的地方就是动画效果. 最近在学习Android的Animation,简单实现了一个IOS相机滤镜退出的动画: 布局文件:activity_animation_d ...

  5. Activity和Fragment生命周期变化

    情形一:启动应用加载Activity和Fragment Activity::onCreate Fragment::onAttach Fragment::onCreate Fragment::onCre ...

  6. SQL server抽疯后修改sa密码无法成功的处理办法

    今天上班打开电脑,发现尼玛所有项目启动后都报错,原因是说数据库sa的验证错误,无法进行数据库链接等等东西,简单地说---SQL server抽疯了!!!:( 昨天还好好的.而且没有修改过东西.为啥会出 ...

  7. 如何获取App当前版本号

    NSDictionary *infoDic = [[NSBundle mainBundle] infoDictionary]; NSString *currentVersion = [infoDic ...

  8. c#wiform中KeyDown事件

    当首次按下键盘上某个键时发生事件. 例如 private void Form1_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Ke ...

  9. 安卓开发service

    如果把Activity比喻为前台程序,那么service可以看做是一个后台程序.Service跟Activity一样也由Intent调用. 在工程里想要添加一个Service,先新建继承Service ...

  10. JeeSite试用

    JeeSite主要定位于企业信息化领域.网址:http://www.oschina.net/p/jeesite 从描述来看,各种NB,下来看的最主要原因是最近还在更新,觉得有问题可以有一批人一起研究研 ...