PLSQL Package包的使用
创建包头
create or replace package pak_kingsql is
procedure pro_kingsql(p_one in varchar2,p_two out varchar2,p_three in out varchar2);
function f_nianxin(v_sal in emp.sal%type)return number;
end;
/
创建包体
create or replace package body pak_kingsql is
procedure pro_kingsql(p_one in varchar2,p_two out varchar2,p_three in out varchar2)
is
begin
dbms_output.put_line('parameter: '||'p_one: '||p_one||',p_two: '||p_two||',p_three:'||p_three);
end pro_kingsql;
function f_nianxin
(v_sal in emp.sal%type)
return number
is
v_sal2 emp.sal%type:=0;
begin
v_sal2:=v_sal*12;
return v_sal2;
end f_nianxin;
end pak_kingsql;
/
调用包的过程
SCOTT@VDEDU > declare
2 TWO varchar2(20):='hehe';
3 THREE varchar2(20):='haha';
4 begin
5 pak_kingsql.pro_kingsql('kingsql',TWO,THREE);
6 end;
7 /
PL/SQL procedure successfully completed.
SCOTT@VDEDU > set serveroutput on
SCOTT@VDEDU > /
parameter: p_one: kingsql,p_two: ,p_three:haha
PL/SQL procedure successfully completed.
调用包的函数
select pak_kingsql.f_nianxin(sal) from emp;
PAK_KINGSQL.F_NIANXIN(SAL)
--------------------------
9600
19200
15000
35700
15000
34200
29400
36000
60000
18000
13200
PAK_KINGSQL.F_NIANXIN(SAL)
--------------------------
11400
36000
15600
删除包
DROP PACKAGE package_name;
DROP PACKAGE BODY package_name;
创建一个包 把之前的工资等级过程和函数放进去
包头
create or replace package pak_sal is
procedure pro_emp_02(v_eno emp.empno%type);
function f_grade(v_eno in emp.empno%type)
return varchar2;
end;
/
包体
create or replace package body pak_sal is
procedure pro_emp_02(v_eno emp.empno%type)
is
v_ename emp.ename%type;
v_sal emp.sal%type;
begin
select ename,sal into v_ename,v_sal from emp where empno=v_eno;
case
when v_sal between 0 and 2000 then
dbms_output.put_line(v_ename||'''s salary is'||v_sal||'little case');
when v_sal between 2001 and 5000 then
dbms_output.put_line(v_ename||'''s salary is'||v_sal||'medium case');
when v_sal>5000 then
dbms_output.put_line(v_ename||'''s salary is'||v_sal||'funny');
else
dbms_output.put_line(v_ename||'''s salary is'||v_sal||'not funny');
end case;
end pro_emp_02;
function f_grade(v_eno in emp.empno%type)
return varchar2
is
v_sal emp.sal%type;
v_result varchar2(50);
begin
select sal into v_sal from emp where empno=v_eno;
case
when v_sal>1 and v_sal<2000 then
v_result:='little case';
when v_sal>2000 and v_sal<5000 then
v_result:='medium case';
when v_sal>5000 then
v_result:='big case';
else
v_result:='no case';
end case;
return v_result;
end f_grade;
end pak_sal;
/
PLSQL Package包的使用的更多相关文章
- 关于Visual Studio 未能加载各种Package包的解决方案
问题: 打开Visual Studio 的时候,总提示未能加载相应的Package包,有时候还无法打开项目,各种提示 解决方案: 进入用户目录 C:\Users\用户名\AppData\Local\M ...
- 未能正确加载“visual C++ package”包
早上打开360要卸载软件,跳出说系统修复,习惯性的点击修复,结果修复后发现打开vs2012提示“未能正确加载“visual C++ package”包……..”, 重启也一样,google了下,是因为 ...
- eclipse 包 取消代码第一行package包名 自动补全时取消自动引入包名 修改名字 取消引用 自动导入publilc static void main(String[] args) {}
--项目 --包 包是为了管理类文件,同个包下不允许同名类文件,但不同包就可以,把类放在包里是规范 (https://zhidao.baidu.com/question/239471930532952 ...
- python开发者框架套件总结: package 包 frameworks
python开发者的package 包 框架套件总结: frameworks 开发环境: anaconda pycharm django awesome-django : 介绍 django ...
- 如何同步删除svn管理的package包目录
转:https://blog.csdn.net/shiwodecuo/article/details/51754598 eclipse在实际的开发中,当我们的项目由svn进行管理时,若想删除选中的整个 ...
- JavaSE入门学习17:Java面向对象之package(包)
一Java包(package) 为了更好地组织类,Java提供了包机制,用于差别类名的命名空间. 包的作用: A把功能类似或相关的类或接口组织在 ...
- 批量修改Java类文件中引入的package包路径
http://libeey.blogbus.com/logs/101848958.html当复制其他工程中的包到新工程的目录中时,由于包路径不同,出现红叉,下面的类要一个一个修改包路径,类文件太多的话 ...
- error: Error: No resource found for attribute ‘layout_scrollFlags’ in package‘包名’
遇到error: Error: No resource found for attribute 'layout_scrollFlags' in package'包名' 这个问题时候刚開始自己也是感觉到 ...
- go package包的使用
一.标准库 引入 在我们之前所写的所以代码中,我们基本上可以看到fmt这个导入的包,但是我们却不知道如何去写这种包. 如果我们可以自己去写,那么我们就可以将一个功能的集合统一的放入包中,便于以后使用, ...
随机推荐
- Redis 操作列表数据
Redis 操作列表数据: > lpush list1 "aaa" // lpush 用于追加列表元素,默认追加到列表的最左侧(left) (integer) > lp ...
- 【Linux】将终端的命令输出保存为txt文本文件
Linux中的终端很方便,可以直接复制粘贴的. 之后开一个gedit文本编辑器,把复制到的内容粘贴就可以的. 不像windows的cmd控制台,需要先右键标题栏,选择编辑->全选/标记,在右键标 ...
- N76E003之IAP
修改FLASH数据通常需要很长时间,不像RAM那样可以实时操作.而且擦除.编程或读取FLASH数据需要遵循相当复杂的时序步骤.N76E003提供方便FALSH编程方式,可以帮助用户通过IAP方式,重新 ...
- React Native(十三)——ios键盘挡住textInput
渐入佳境 用React Native重构的项目也快接近尾声,剩下的就是适配ios的功能了.慢慢地也从中琢磨出了一点门道,于是就遇见了键盘遮挡textInput问题斑斑: 正常页面: android点击 ...
- iOS9下App Store新应用提审攻略
博文转载 CocoaChina 文/文公子 公子在第十讲中提到应用更新时需要注意的细节和苹果便捷通道的利用.今天,公子将进一步深扒iTunes Connect的面纱,为大家呈现新应用在提审前需要准备的 ...
- 页面调用Iframe中数据
<iframe src="html的路径(至于MVC中cshtml直接路径好像是不行的,得使用action进行请求出来的路径)" id="iframechild&q ...
- UVA 10120 - Gift?!(搜索+规律)
Problem D. Gift?! The Problem There is a beautiful river in a small village. N rocks are arranged ...
- windows8 Metro App用Javascript来调用C#的library
(转自:http://www.ronaldwidha.net/2012/05/10/winrt-calling-c-csharp-class-libraries-from-winjs-javascri ...
- Ajax提交表单时验证码自动验证 php后端验证码检测
本文通过源码展示如何实现表单提交前,验证码先检测正确性,不正确则不提交表单,更新验证码. 1.前端代码 index.html <!DOCTYPE html> <html> &l ...
- 路由器子网掩码设置不正确导致github无法访问
奇怪的现象,路由器子网掩码设置成255.0.0.0会导致电脑访问不到https://github.com/ 改成默认的255.255.255.0就正常了.