存储过程语法(超全的oracle存储过程、函数及包的语法及使用说明)

说句实在的,平时工作基本上不会去背啥创建存储过程、创建函数、创建包之类的语法,但是相信大家面试啥的却基本会笔试这些,所以就对存储过程、函数和包的语法做下总结,也做个备忘!这里面语法大家理解就可以了,能记住最好…


一、Oracle创建存储过程(procedure)

存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,它大大提高了SQL语句的功能和灵活性。存储过程编译后存储在数据库中,所以执行存储过程比执行存储过程中封装的SQL语句更有效率。

1、基本语法

create or replace procedure update_emp_sal
(Name in out type,
 Name in out type, ...
) is
begin
 
end update_emp_sal;

2、实例:

2.1、修改emp表的ename字段

create or replace procedure update_emp
(
v_empno varchar2,
v_ename varchar2
) is
begin
update emp set ename=v_ename where empno=v_empno; 
end update_emp;
超全的oracle存储过程、函数及包的语法及使用说明

调用方法如下:

SQL>exec update_emp('7934','test');
超全的oracle存储过程、函数及包的语法及使用说明

2.2、有返回值的存储过程:简单的返回empno=7934的sal值

create or replace procedure emp_out_sal(v_empno in varchar2,
 v_sal out number) is
 vsal number(7, 2);
begin
 select sal into vsal from emp where empno = v_empno;
 v_sal := vsal;
end;
超全的oracle存储过程、函数及包的语法及使用说明

调用有返回值的过程

SQL> var vsal number
SQL> exec emp_out_sal('7934',:vsal);
超全的oracle存储过程、函数及包的语法及使用说明

二、Oracle创建函数(function)

1、基本语法:

create or replace function (Name in type, Name in type, ...) return number is
 Result number;
begin
 return (Result);
end ;

2、实例

2.1、查询出ename=SCOTT的工资

create or replace function ret_emp_sal(v_ename varchar2) return number is
 v_sal number(7, 2);
begin
 select nvl(sal, 0)
 into v_sal
 from emp
 where lower(ename) = lower(v_ename);
 return v_sal;
end;
超全的oracle存储过程、函数及包的语法及使用说明

调用此函数:

SQL> var vsal number
SQL> call ret_emp_sal('SCOTT') into :vsal;
 
Method called
vsal
---------
3000
超全的oracle存储过程、函数及包的语法及使用说明

三、Oracle创建包(package)

包用于组合逻辑相关的过程和函数,它由包规范和包体两个部分组成。包规范用于定义公用的常量、变量、过程和函数,创建包规范可以使用CREATE PACKAGE命令,创建包体可以使用CREATE PACKAGE BODY。

1、创建包规范:

create package emp_pkg is
 procedure emp_update_ename(v_empno varchar2, v_ename varchar2);
 function emp_get_sal(v_empno varchar2) return number;
end;

2、创建包体

create or replace package body emp_pkg
is
 procedure emp_update_ename
 (
 v_empno varchar2,
 v_ename varchar2
 )
 is
 vename varchar2(32);
 begin 
 update emp set ename=v_ename where empno=v_empno;
 commit;
 select ename into vename from emp where empno=v_empno;
 dbms_output.put_line('雇员名称:'||vename); 
 end;
 
 function emp_get_sal
 (
 v_empno varchar2
 )
 return number is
 vsal number(7,2);
 begin
 select sal into vsal from emp where empno=v_empno;
 return vsal;
 end;
end;
超全的oracle存储过程、函数及包的语法及使用说明

在此提示,在没有创建包规范就创建包体,会失败,要使用包,必须先创建包规范,然后在创建包体。

当要调用包的过程和函数时,在过程和函数的名称前加上包名作为前缀(包名.子程序名称),而如果要访问其他方案的包时需要在包的名称前加上方案的名称(方案名称.包名.子程序名称)

3、调用包

SQL> var vsla number
SQL> call emp_pkg.emp_get_sal('7934') into :vsla;
SQL> set serveroutput on;
SQL> exec emp_pkg.emp_update_ename('7934','huangweibo');
SQL> call emp_pkg.emp_update_ename('7934','huangweibo');
SQL> select * from dual;
超全的oracle存储过程、函数及包的语法及使用说明
(0)
小靳的头像小靳

相关推荐

  • 老是掉头发什么原因女(女孩子掉头发是什么原因)

    老是掉头发什么原因女女人掉头发可能有两种原因:一、由于代谢功能的下降,特别是蛋白质代谢的下降,使营养供应下降,头发缺乏足够的营养供应会引起脱发。脱发形成时要做好生活护理,不要过度紧张,保持情绪稳定,完后及时到医院就诊并咨询。当脂肪摄入过多时

    2023年5月20日
  • 便宜减肥产品(减肥药真的能瘦吗)

    好用的减肥产品有哪些从医学角度讲,目前允许上市的减肥药只有一种叫奥利司他,这种减肥药是通过抑制脂肪吸收起作用的,比较安全,而且有效。实际上减肥还是需要控制饮食和运动锻炼相结合,这样减肥效果是最佳的,而且对身体也没有伤害,也不会反弹。部分燃脂

    资讯 2023年8月18日
  • 最火qq网名霸气男

    1、风夏了白雪2、终究冰凉3、№份手旳娈薆4、没有你哪来的未来5、她的轮廓6、垂眸7、聚散终有时8、呆萌男神9、ペ该死的心动°10、你眼中盈盈月11、初恋栀子花12、不可一世的男子13、借洞暖鸟14、戒烟”╰╮1

    2024年2月8日
  • 哪种植物最好养

    1、仙人球仙人球是很多人刚刚养花的时候,一定会入手的植物之一。仙人球放在电脑桌前防辐射,还非常好养活,完全不需要去用心培育,而且一年四季都是保持青春的样子。养护仙人掌没有别的要求,一定要少浇水。仙人球耐旱,但是不耐涝,很多把仙人球养死的原

    2023年10月9日
  • 沈云汐陆宴白小说全文 沈云汐陆宴白小说免费阅读大结局

    沈云汐陆宴白是著名作者佚名成名小说作品中的主人翁,书中沈云汐陆宴白的情节表达的淋淋尽致,都市类的小说还写的如此之好,超棒!内容主要讲述他们要……结婚!沈云汐心里情绪翻涌如浪潮,她看着陆宴白:“你不想说点什么吗?”不管是被通知停飞,还是被告知自己的法定伴侣即将成为别人的丈夫!

    2023年11月2日
  • 苏美的上古权杖是什么(权杖是什么意思)

    大家好,本篇文章为大家解答以上问题,相信很多人对苏美的上古权杖是什么都不是特别的了解,因此呢,今天就来为大家分享下关于苏美的上古权杖是什么以及权杖是什么意思的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

    2023年8月30日
  • 红斑狼疮是怎样造成的(红斑狼疮会有哪些症状表现)

    怎样确认自己得了红疮狼斑红斑狼疮的诊断,主要是那么几个方面:第一、看临床症状,因为红斑狼疮的症状比较复杂,各个系统都可以受到影响,有的时候可以没有症状,比如说白血球低了、血小板低了,或者尿蛋白阳性或者尿血,这些得通过化验,症状完了就可以,比

    资讯 2023年8月18日
  • rog游戏手机5和红魔6选哪个(rog游戏手机5和红魔6怎么选)

    rog游戏手机5上市之后大家对它的评论还真的是非常的高的,许多人都拿这款手机和红魔游戏手机6做一个对比。他们的处理器还是使用的一样的,那么接下来小编就来为大家来介绍一下rog游戏手…

    2021年12月11日 资讯
  • 上呼吸道感染的症状有哪些?(什么是上呼吸道感染)

    上呼吸道上呼吸道包括鼻、副鼻窦、咽、咽鼓管、会厌、喉,以环状软骨为界分为上下两部分,以上的则称为上呼吸道,通常所说的感冒指的就是上呼吸道感染,急性上呼吸道感染在临床上见于以下几种类型:1、普通感冒,普通感冒由病毒感染引起,俗称伤风,又称急性

    资讯 2023年7月26日
  • 自荐信200字教师(优秀8篇)

    自荐信200字教师要怎么写,才更标准规范?根据多年的文秘写作经验,参考优秀的自荐信200字教师样本能让你事半功倍,下面分享【自荐信200字教师】,供你选择借鉴。 自荐信200字教师篇1尊敬的领导:你好

    职场 2023年9月16日
  • 牛肉横切还是竖切(干货分享牛肉的正确切法)

    在厨界有句话是这样说的,切菜的师傅,炒菜的徒弟,这句话你别理解错误,一盘成功的菜肴,不仅要炒得好,更要配菜配得好,配菜就涉及到刀工了,一般越大的厨师,刀工就越出神入化。我们平常在切菜的时候经常都会要切肉,比如猪肉,羊肉,鸡肉,牛肉等,不

    2023年5月29日 资讯
  • 攻坚行动情况总结(攻坚行动总结)

    各位网友们好,相信很多人对攻坚行动情况总结都不是特别的了解,因此呢,今天就来为大家分享下关于攻坚行动情况总结以及攻坚行动总结的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

    2023年5月29日
  • 鸭肉的功效与作用禁忌(鼻炎能吃鸭肉吗)

    鸭肉的功效与作用禁忌鼻炎患者是可以吃鸭肉的,中医认为鸭肉性寒味甘,可以滋补肺脾肾三脏。如果过量食用仙人球炖鸭子,食物可能长期停留于胃肠道,容易影响胃肠功能,引起腹胀、腹痛等消化不良症状,不利于维持消化系统健康;肥胖:由于仙人球炖鸭子中含有一

    资讯 2023年6月2日
  • 人工大理石是怎么做出来的(农村自制石桌石凳)

    大家好,本篇文章为大家解答以上问题,相信很多人对人工大理石是怎么做出来的都不是特别的了解,因此呢,今天就来为大家分享下关于人工大理石是怎么做出来的以及农村自制石桌石凳的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

    2023年6月30日
  • 生活的点点滴滴不容易的说说(生活中的点点滴滴说说)

    各位网友们好,相信很多人对生活的点点滴滴不容易的说说都不是特别的了解,因此呢,今天就来为大家分享下关于生活的点点滴滴不容易的说说以及生活中的点点滴滴说说的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

    2023年7月23日

发表回复

登录后才能评论