PL/SQL之存储过程
一、什么是存储过程?
在Oracle数据库中,可以将一些固定的操作集中起来由Oracle数据库服务器来完成,以实现某个任务,这就是存储过程。
二、存储过程有什么优点?
1、简化复杂操作;
2、增加数据独立性;
3、提高安全性;
4、实现表字段完整性;
三、存储过程的参数
1、存储过程的参数有三种:in(输入类型) 参数,out(输出类型)参数,in out(输入、输出类型)参数。在过程中可以定义参数,在调用该过程时,可以向过程传递实际参数。如果没有参数,则过程名后面的圆括号和参数可以省略。参数定义形式如下:
参数名(参数定义) 参数传递模式 参数数据类型:=默认值
flag in out number:=0
2、三种参数传递模式比较:
in out in out
是否默认 默认 必须明确指定 必须明确指定
参数的传递方向 从调用者到过程 从过程到调用者 两个方向
形式参数的作用 一个常量 没有初始化的变量 经过初始化的变量
实际参数的形式 常量、表达式、变量 必须是一个变量 必须是一个变量
参数默认值的作用是在调用过程时,如果没有提供实际的参数,则将此默认值作为实际的参数传递给过程。数据类型用来指定参数的类型,在参数定义中不能指定参数的约束条件,即不能指定参数的长度和是否为空 等属性。
四、存储过程中参数的赋值:
declare 变量名:=变量值
declare flag:=0;
五、存储过程的创建:
在PL/SQL语句中,可以使用create or replace procedure命令创建用户自定义的存储过程。存储过程包括无参存储过程以及有各种参数的存储过程,形式如下:
create or replace procedure pro_test/pro_test(参数1,参数2,...) as
begin
存储过程定义
end pro_test;
六、执行存储过程:
1、执行无参数的存储过程:
begin
存储过程名;
end ;
2、执行带有in参数的存储过程:
begin
存储过程名(in参数1,in参数2,...);
end;
3、执行带有in,out参数的存储过程:
declare count1 number;//out参数1
4、执行带哟偶in out参数的存储过程:
declare flag1 number:=2;
七、查询存储过程:
select * from user_objects where object_name=upper('pro_send');
八、删除存储过程:
drop procedure 存储过程名或者直接从PL/SQL中删除。
九、存储过程示例:
1、用存储过程输出“Hello world!”
PL/SQL之存储过程相关推荐
- Oracle如何使用PL/SQL调试存储过程
Oracle如何使用PL/SQL调试存储过程 PL/SQL中提供了[调试存储过程]的功能,可以完成存储过程的预编译与测试. 点击要调试的存储过程,右键选择TEST 如果需要查看变量,当然调试都需要.在 ...
- PL/SQL中存储过程int和out的用法
PL/SQL中存储过程int和out的用法 一 介绍 过程和函数中的in和out (1)一般来讲,过程和函数的区别在于函数可以有一个返回值:而过程没有返回值. (2)但过程和函数都可以通过out指定一 ...
- 【学亮IT手记】PL/SQL编程-存储过程
存储过程实际上就是一种命名的PL/SQL程序块. 创建存储过程 创建存储过程需要使用procedure关键字. 创建存储过程不需要使用DECLARE关键字,转而使用CREATE/REPLACE关键字. ...
- PL/SQL调试存储过程
如何调试oracle存储过程 PL/SQL中为我们提供了调试存储过程的功能,可以帮助你完成存储过程的预编译与测试. 点击要调试的存储过程,右键选择TEST 如果需要查看变量,当然调试都需要.在右键菜单 ...
- PL/SQL编程-存储过程
概念: 存储过程,简称"存储"或者"存过",是一种命名的PL/SQL程序块,也是工作中用到最多的命名块,数据库中的大多数程序都是以存储过程的形式存放在数据库里. ...
- pl/sql的存储过程
1.存储过程的用途和使用场景 一般的sql语句每执行一次就编译一次,而存储过程只在创造时编译,以后每次执行存储过程都不需要再重新编译,所以使用存储过程可提高数据库执行速度. 当对数据库进行复杂操作时( ...
- [PL/SQL]使用存储过程实现导出指定数据到文件(仿EXP)|转|
源自 crkying:http://blog.csdn.net/edcvf3/article/details/8633247 由于EXP不能导出表的指定字段(其实也可通过CREATE TABLE t ...
- 百倍性能的PL/SQL优化案例(r11笔记第13天)
我相信你是被百倍性能的字样吸引了,不过我所想侧重的是优化的思路,这个比优化技巧更重要,而结果嘛,其实我不希望说成是百倍提升,""自黑""一下. 有一个真实想法和 ...
- 金仓数据库KingbaseES 迁移工具—PL/SQL中Oracle和KingbaseES 的对比
关键字: KingbaseES.PL/SQL.存储过程.函数 一.PL/SQL语言兼容特性 在 PL/SQL 语言方面,KingbaseES 提供了大量的Oracle 兼容特性.这些特性使得大多数的 ...
最新文章
- go语言 mysql卡死,Go语言MySQL优化
- python strip函数用法_python strip()函数 介绍
- Puppet SaltStack Chef Ansible
- 【C++编程题2】字符串插入空格
- python http 返回json中文乱码
- (0.2)linux下Mysql的安装配置与管理入门(目录篇)
- k8s配置以使得pod可以运行于master上
- WebServices中的SOAP究竟是什么东西?与http,xml,webservices的本质关系是什么?
- openwrt顶层Makefile分析-转
- CoffeeScript学习(3)—— 函数
- 免费录屏、直播推流软件之OBS Studio
- Xshell使用方法
- MTK.SP Flash Tool v6.2208 联发科V6版本 线刷工具教程下载
- CAD命令输入、结束、重复、撤销
- 谁是赢家,某电视台的娱乐节目有个表演评审环节,每次安排两位艺人表演,他们的胜负由观众投票和 3 名评委投票两部分共同决定。规则为:如果一艺人的观众票数高,且得到至少 1 名评委的认可,该艺人就胜出;
- c#中Debug和Release的区别实验
- 系统性谈谈软件可靠性——第4讲:软件可靠性测试
- 我的世界java百度什么电脑玩好_【我的世界】为了在龙芯电脑上玩Minecraft(我的世界)我做了什么_玩得好游戏攻略...
- 我是如何拿到:百度 腾讯 头条 美团 度小满等互联网offer的?
- ajax瀑布流插件,jQuery瀑布流无限加载插件:jquery.falless.js