--create or replace 创建或替换,如果存在就替换,不存在就创建
create or replace procedure p
is
  cursor c
  is
  select * from dept2 for update;
begin
  for row_record in c loop
    if (row_record.deptno = 30) then
      update dept2 set dname = substr(dname, 0, length(dname) - 3) where current of c;
    end if;
  end loop;
end;
 
exec p;
 
begin
p;
end;
 
--带参存储过程
--in 输入参数,不带in out 默认输入参数
--out 输出参数
--in out 同时带的是输入输入参数
create or replace procedure p2(
       a in number,
       b number,
       s_result out number,
       s_temp in out number
  )
is
begin
  if (a > b) then
    s_result := a;
  else
    s_result := b;
  end if;
  s_temp := s_temp + 3;
end;
 
--调用存储过程
declare
  v_a number := 4;
  v_b number := 6;
  v_result number;
  v_temp number := 5;
begin
  p2(v_a, v_b, v_result, v_temp);
  dbms_output.put_line(v_a);
  dbms_output.put_line(v_b);
  dbms_output.put_line(v_result);
  dbms_output.put_line(v_temp);
end;
 
---删除一个表的过程
create or replace procedure drop_table(tname varchar2)
as
  total int := 0;
begin
     select count(*) into total from user_tables 
            where table_name = upper(tname);
     if total >= 1 then
        execute immediate 'drop table '||tname; --此处必须用动态sql
     end if;
end;
select * from user_tables;
 
--递归存储过程
create or replace procedure pro_emp(sEmpno emp.empno%type, sLevel integer)
is
       cursor c is select * from emp where mgr = sEmpno;
       prefixStr varchar(255);
begin
  for i in 1..sLevel loop
    prefixStr := prefixStr || '----';
  end loop;
  
  for row_data in c loop
    dbms_output.put_line(prefixStr || row_data.ename);
    pro_emp(row_data.empno, sLevel + 1);
  end loop;
end;
 
select * from emp;
begin
  pro_emp(7839, 0);
end;

本文转自hoojo博客园博客,原文链接:http://www.cnblogs.com/hoojo/archive/2011/05/03/2035388.html,如需转载请自行联系原作者

Oracle笔记 十、PL/SQL存储过程相关推荐

  1. Oracle如何使用PL/SQL调试存储过程

    Oracle如何使用PL/SQL调试存储过程 PL/SQL中提供了[调试存储过程]的功能,可以完成存储过程的预编译与测试. 点击要调试的存储过程,右键选择TEST 如果需要查看变量,当然调试都需要.在 ...

  2. Oracle PL/SQL 存储过程

    Oracle PL/SQL 存储过程 Oracle 简介: 是甲骨文公司的一款关系数据库管理系统.它是在数据库领域一直处于领先地位的产品.可以说Oracle数据库系统是目前世界上流行的关系数据库管理系 ...

  3. oracle笔记一(sql语句方面)

    oracle笔记一(sql语句方面) 一.sql语句 --================================================ 1.增加主键    alter table ...

  4. 每周一书《Oracle 12 c PL(SQL)程序设计终极指南》

    本周为大家送出的书是<Oracle 12 c PL(SQL)程序设计终极指南>,此书由机械工业出版社出版, 孙风栋,王澜,郭晓惠 著. 内容简介: <Oracle 12c PL/SQ ...

  5. PL/SQL存储过程

    目录 PL/SQL存储过程 1.语法 2.实例 3.调用存储过程 4.删除存储过程和函数 5.存储过程与函数的比较 PL/SQL存储过程 存储过程是被命名的 PL/SQL 块,存储于数据库中,是数据库 ...

  6. Oracle Study之--PL/SQL Developer软件错误

    Oracle Study之--PL/SQL Developer软件错误 博文在51cto和CSDN同时开通 系统环境: 操作系统: Windows  XP(64) 软件:          PL/SQ ...

  7. 【学亮IT手记】oracle远程连接工具PL/SQL Developer的安装使用教程

    [学亮IT手记]oracle远程连接工具PL/SQL Developer的安装使用教程 客户端远程连接oracle,可以使用oracle自带的连接工具sqlplus,instanceclient_12 ...

  8. Windows 7 下安装 Oracle 数据库和 PL/SQL Developer

    win7下无论是32bits还是64bits,建议只安装oracle 11g 32bits,然后直接安装pl/sql developer,不需要额外的配置,就可以通过pl/sql developer来 ...

  9. 免安装Oracle客户端使用PL/SQL连接Oracle

    免安装Oracle客户端使用PL/SQL连接Oracle       大家都知道,用PL/SQL连接Oracle,是需要安装Oracle客户端软件的.有没要想过不安装Oracle客户端直接连接Orac ...

  10. Oracle实验五 PL/SQL编程

    Oracle实验五 PL/SQL编程 [实验目的] 熟悉PL/SQL的数据类型和书写规则 熟悉控制结构和游标的使用 编写和运行函数.过程和触发器 [实验内容] 编写脚本文件,调试运行脚本文件,并记录结 ...

最新文章

  1. andorid 全部对话框
  2. NVIDIA专家实战演示,教你快速搭建基于Python的车辆信息识别系统
  3. 成功解决File frozen importlib._bootstrap, line 219, in _call_with_frames_removed ImportError: DLL lo
  4. Linux常用命令—权限管理命令—权限管理命令chmod
  5. C#入门详解(12)
  6. pyinstaller打包流程
  7. 航海王热血航线服务器要维修多久,航海王热血航线修复了哪些内容?
  8. idea错误提示不明显_淘宝镜像错误导致vue项目一系列异常
  9. 【软件测试】使用C++ Test进行动态测试
  10. 《动手学深度学习》(PyTorch版)代码注释 - 50 【Semantic_segmentation】
  11. 【规律】Cunning Friends
  12. AutoCAD Civil 3D-路线-断链的处理
  13. 又又又一边缘计算初创企业融资
  14. Linux管道符|命令使用
  15. java.util. 什么意思_java.util中,util是什么意义
  16. 曾国藩:从30岁起,脱胎换骨
  17. php邮箱类,php邮件类(PHPMailer)使用心得
  18. MySQL手动注入步骤
  19. 带按钮的图片横幅广告
  20. IT30: IT人创业之78CIO,致敬!

热门文章

  1. VS2012+EF6+Mysq
  2. 网络资源(4) - extJS视频
  3. BeautifulSoup安装及其应用
  4. WPF怎么寻找在ItemTemplate内部的各种控件
  5. 分享:Dlib 17.49 发布,跨平台 C++ 通用库
  6. 本地事务和分布式事务工作实践
  7. SpringMVC之Controller查找(Spring4.0.3/Spring5.0.4源码进化对比)
  8. PHP CI框架目录结构及运行机制
  9. Python——阶段总结(一)
  10. CentOS 5.4 rsync+inotify配置触发式(实时)文件远程同步