存储过程实际上就是一种命名的PL/SQL程序块。

创建存储过程

创建存储过程需要使用procedure关键字。
创建存储过程不需要使用DECLARE关键字,转而使用CREATE/REPLACE关键字。

create or replace procedure pro_insertDept
is
begininsert into dept values(11,'软件研发中心','xijing');commit;dbms_output.put_line('插入新纪录成功!');
end pro_insertDept;

在sql*plus环境,使用EXECUTE命令执行pro_insertDept存储过程:

execute pro_insertDept;

在PL/SQL代码块中调用存储过程pro_insertDept:

beginpro_insertDept;
end;

存储过程的模式参数

存储过程的参数模式包括in out和in out等3种。

in模式参数

create or replace prodecure pro_insertDept(num_deptno in number,var_ename in vatchar2,var_loc in varchar2
)
is
begininsert into dept values(num_deptno,var_ename,var_loc);commit;
end pro_insertDept;

需要注意的是:参数的类型不能指定长度。

①按指定名称传递

beginpro_insertDept(var_ename=>'采购部',var_loc=>'西京',num_deptno=>18);
end;

②按位置传递

beginpro_insertDept(28,'工程部','武汉');
end;

用户提供的参数值顺序必须与存储过程定义的参数顺序相同。

ps:可以使用DESC命令来查看存储过程中的参数信息。

③混合方式传递

beginpro_insertDept(38,var_loc=>'光谷',var_ename=>'光电信息产业部');
end;

注意:在某个位置使用了“按指定名称传递”的方式传入参数值后,其后面的参数值也要使用“按指定名称传递”,因为“按指定名称传递”或许已经破坏了参数原始的定义顺序。

in参数的默认值

create or replace procedure pro_insertDept(num_deptno in number,var_dname in varchar2 default '综合部',var_loc in varchar2 default '武汉'
) is
begininsert into dept values(num_deptno,var_dname,var_loc);
end;

调用存储过程pro_insertDept,只向该存储过程传入两个参数值。

declarerow_dept dept%rowtype;
beginpro_insertDept(57,var_loc=>'江夏');commit;select * into row_dept from dept where deptno=57;dbms_output.put_line('部门名称是:'||row_dept.dname||',位置是:'||row_dept.loc);
end;

【学亮IT手记】PL/SQL编程-存储过程相关推荐

  1. PL/SQL编程-存储过程

    概念: 存储过程,简称"存储"或者"存过",是一种命名的PL/SQL程序块,也是工作中用到最多的命名块,数据库中的大多数程序都是以存储过程的形式存放在数据库里. ...

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

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

  3. Oracle学习笔记(最重要的是PL/SQL编程)

    一:Oracle认证,与其它数据库比较,安装 Oracle安装会自动的生成sys用户和system用户: (1) sys用户是超级用户,具有最高权限,具有sysdba角色,有create databa ...

  4. pl/sql编程基础

    PL/SQL 1.过程.函数.触发器是pl/sql编写的 2.过程.函数.触发器是存放在oracle数据库中的 3.pl/sql是非常强大的过程化语言 4.过程.函数.触发器可以在java程序中调用 ...

  5. ORACLE PL/SQL编程之六:把过程与函数说透(穷追猛打,把根儿都拔起!)

    原文:ORACLE PL/SQL编程之六:把过程与函数说透(穷追猛打,把根儿都拔起!) ORACLE PL/SQL编程之六: 把过程与函数说透(穷追猛打,把根儿都拔起!)   继上篇:ORACLE P ...

  6. oracle pl/sql编程详细,Oracle框架:PL/SQL编程:

    PL/SQL编程 一:什么是PL/SQL (1.)PL/SQL体系结构: PL/SQL引擎用来编译和执行,PL/SQL块或子程序,该引擎驻留在Oracle服务器中. (2.)PL/SQL块简介 PL/ ...

  7. PL/SQL编程基本概念

    /* =============================================================================pl/sql编程 =========== ...

  8. [顶]ORACLE PL/SQL编程详解之二:PL/SQL块结构和组成元素(为山九仞,岂一日之功)...

    [顶]ORACLE PL/SQL编程详解之二:PL/SQL块结构和组成元素(为山九仞,岂一日之功) 原文:[顶]ORACLE PL/SQL编程详解之二:PL/SQL块结构和组成元素(为山九仞,岂一日之 ...

  9. oracle快捷语句框架中,Oracle框架:PL/SQL编程:

    PL/SQL编程 一:什么是PL/SQL (1.)PL/SQL体系结构: PL/SQL引擎用来编译和执行,PL/SQL块或子程序,该引擎驻留在Oracle服务器中. (2.)PL/SQL块简介 PL/ ...

最新文章

  1. 基本机器学习面试问题 ---- Company/Industry Specific/Interest
  2. Java Web 应用概述
  3. memcache 获取key的方法,查询session存储
  4. 【BZOJ4518】征途,斜率优化DP
  5. 拍摄人像最难的是哪个方面?
  6. salesforce 零基础学习(三十四)动态的Custom Label
  7. 主要植物叶片数据集农作物病害数据集
  8. 存储与主板的外设接口
  9. 计算机管理无法输入密码,光大网银控件已安装但无法输入密码
  10. Android 免费云真机
  11. 网络复现笔记-AdaptSegNet
  12. PL/SQL Developer 9.0.1.1613+注册机
  13. 八皇后问题(回溯算法)
  14. 未成年人勿进 谨以献给1980~1990出生的人(二)
  15. 卡尔曼滤波/粒子滤波融合定位模拟器
  16. layui数据表格自带的排序功能
  17. Xmanager Enterprise 5破解版
  18. linux安装和使用docker教程
  19. CentOS-7挂载iscsi网络存储
  20. 记第一次爬虫 python3.6+pyquery

热门文章

  1. 【Kick Algorithm】十大排序算法及其Python实现
  2. 信息抽取(五)实体命名识别之嵌套实体识别哪家强,我做了一个简单的对比实验
  3. 又一篇论文让我开始怀疑起了人生...
  4. 史上最强CP!程序猿+喵星人
  5. 行业观察|智慧屏集中爆发,大屏市场能否迎来破局者?
  6. MCtalk教育快报 | 0820
  7. 网易云解码实时音视频社交 成就游戏产业发展新变量
  8. Redux源码分析(一)
  9. 浅析weak指针的实现
  10. JEESZ-SSO解决方案