Oracle笔记 十、PL/SQL存储过程
--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;
Oracle笔记 十、PL/SQL存储过程相关推荐
- Oracle如何使用PL/SQL调试存储过程
Oracle如何使用PL/SQL调试存储过程 PL/SQL中提供了[调试存储过程]的功能,可以完成存储过程的预编译与测试. 点击要调试的存储过程,右键选择TEST 如果需要查看变量,当然调试都需要.在 ...
- Oracle PL/SQL 存储过程
Oracle PL/SQL 存储过程 Oracle 简介: 是甲骨文公司的一款关系数据库管理系统.它是在数据库领域一直处于领先地位的产品.可以说Oracle数据库系统是目前世界上流行的关系数据库管理系 ...
- oracle笔记一(sql语句方面)
oracle笔记一(sql语句方面) 一.sql语句 --================================================ 1.增加主键 alter table ...
- 每周一书《Oracle 12 c PL(SQL)程序设计终极指南》
本周为大家送出的书是<Oracle 12 c PL(SQL)程序设计终极指南>,此书由机械工业出版社出版, 孙风栋,王澜,郭晓惠 著. 内容简介: <Oracle 12c PL/SQ ...
- PL/SQL存储过程
目录 PL/SQL存储过程 1.语法 2.实例 3.调用存储过程 4.删除存储过程和函数 5.存储过程与函数的比较 PL/SQL存储过程 存储过程是被命名的 PL/SQL 块,存储于数据库中,是数据库 ...
- Oracle Study之--PL/SQL Developer软件错误
Oracle Study之--PL/SQL Developer软件错误 博文在51cto和CSDN同时开通 系统环境: 操作系统: Windows XP(64) 软件: PL/SQ ...
- 【学亮IT手记】oracle远程连接工具PL/SQL Developer的安装使用教程
[学亮IT手记]oracle远程连接工具PL/SQL Developer的安装使用教程 客户端远程连接oracle,可以使用oracle自带的连接工具sqlplus,instanceclient_12 ...
- Windows 7 下安装 Oracle 数据库和 PL/SQL Developer
win7下无论是32bits还是64bits,建议只安装oracle 11g 32bits,然后直接安装pl/sql developer,不需要额外的配置,就可以通过pl/sql developer来 ...
- 免安装Oracle客户端使用PL/SQL连接Oracle
免安装Oracle客户端使用PL/SQL连接Oracle 大家都知道,用PL/SQL连接Oracle,是需要安装Oracle客户端软件的.有没要想过不安装Oracle客户端直接连接Orac ...
- Oracle实验五 PL/SQL编程
Oracle实验五 PL/SQL编程 [实验目的] 熟悉PL/SQL的数据类型和书写规则 熟悉控制结构和游标的使用 编写和运行函数.过程和触发器 [实验内容] 编写脚本文件,调试运行脚本文件,并记录结 ...
最新文章
- andorid 全部对话框
- NVIDIA专家实战演示,教你快速搭建基于Python的车辆信息识别系统
- 成功解决File frozen importlib._bootstrap, line 219, in _call_with_frames_removed ImportError: DLL lo
- Linux常用命令—权限管理命令—权限管理命令chmod
- C#入门详解(12)
- pyinstaller打包流程
- 航海王热血航线服务器要维修多久,航海王热血航线修复了哪些内容?
- idea错误提示不明显_淘宝镜像错误导致vue项目一系列异常
- 【软件测试】使用C++ Test进行动态测试
- 《动手学深度学习》(PyTorch版)代码注释 - 50 【Semantic_segmentation】
- 【规律】Cunning Friends
- AutoCAD Civil 3D-路线-断链的处理
- 又又又一边缘计算初创企业融资
- Linux管道符|命令使用
- java.util. 什么意思_java.util中,util是什么意义
- 曾国藩:从30岁起,脱胎换骨
- php邮箱类,php邮件类(PHPMailer)使用心得
- MySQL手动注入步骤
- 带按钮的图片横幅广告
- IT30: IT人创业之78CIO,致敬!
热门文章
- VS2012+EF6+Mysq
- 网络资源(4) - extJS视频
- BeautifulSoup安装及其应用
- WPF怎么寻找在ItemTemplate内部的各种控件
- 分享:Dlib 17.49 发布,跨平台 C++ 通用库
- 本地事务和分布式事务工作实践
- SpringMVC之Controller查找(Spring4.0.3/Spring5.0.4源码进化对比)
- PHP CI框架目录结构及运行机制
- Python——阶段总结(一)
- CentOS 5.4 rsync+inotify配置触发式(实时)文件远程同步