ORACLE之PACKAGE

刚学pl/sql编程,写了两个package。pkg_temp_fn和pkg_temp_fn2。内容涉及pl/sql基本语法,游标,存储过程(in,out),函数(有返回值)。
- pkg_temp_fn内有一个function f_getdept(v_deptid number) return VARCHAR2和一个procedure p_getinfo(v_mapid NUMBER)
创建包规范
create or replace package pkg_temp_fn is function f_getdept(v_deptid number) return VARCHAR2; --reference pkg_temp_fn2 procedure p_getinfo(v_mapid NUMBER/*,v_pname VARCHAR2(20),v_deptno VARCHAR2(15)*/); -- procedure p_main_process; end pkg_temp_fn; --3/24/2016 --var map_id number; --exec pkg_temp_fn.p_getinfo(&map_id);调用方法
创建包体
create or replace package body pkg_temp_fn
is
function f_getdept(v_deptid number) return VARCHAR2
is
deptno );
begin
select y.dept_no into deptno from t_fn_dept y where y.dept_id=v_deptid;
return deptno;
end f_getdept;
procedure p_getinfo(v_mapid NUMBER)
is
cursor xing is select x.person_name,x.dept from t_fn_person x where x.map_id=v_mapid;
pname );
pdept number;
v_deptno );
begin
open xing;
loop
fetch xing into pname,pdept;
exit when xing%notfound;
v_deptno:=f_getdept(pdept);--call function
dbms_output.put_line(pname||'''s dept is :'||v_deptno);
end loop;
close xing;
end p_getinfo;
end pkg_temp_fn;
- kg_temp_fn2内有一个function f_getdept(v_deptid number) return VARCHAR2、一个procedure p_getinfo(v_mapid NUMBER,v_pname out VARCHAR2,v_deptno out VARCHAR2),一个procedure p_main_process(v_mapid NUMBER)。
创建包规范
create or replace package pkg_temp_fn2 is function f_getdept(v_deptid number) return VARCHAR2; procedure p_getinfo(v_mapid NUMBER,v_pname out VARCHAR2,v_deptno out VARCHAR2); procedure p_main_process(v_mapid NUMBER); end pkg_temp_fn2; --3/24/2016 --var map_id number; --exec pkg_temp_fn2.p_main_process(&map_id);调用方法
创建包体
create or replace package body pkg_temp_fn2
is
function f_getdept(v_deptid number) return VARCHAR2
is
deptno );
begin
select y.dept_no into deptno from t_fn_dept y where y.dept_id=v_deptid;
return deptno;
end f_getdept;
procedure p_getinfo(v_mapid in NUMBER,v_pname out VARCHAR2,v_deptno out VARCHAR2)
is
cursor xing is select x.person_name,x.dept from t_fn_person x where x.map_id=v_mapid;
pdept number;
begin
open xing;
loop
fetch xing into v_pname,pdept;
exit when xing%notfound;
v_deptno:=f_getdept(pdept);--
--dbms_output.put_line(pname||'''s dept is :'||v_deptno);
end loop;
close xing;
end p_getinfo;
procedure p_main_process(v_mapid NUMBER)
is
v_pname );
v_deptno );
begin
p_getinfo(v_mapid,v_pname,v_deptno);
dbms_output.put_line(v_pname||'''s dept is :'||v_deptno);
end p_main_process;
end pkg_temp_fn2;
ps:
定义变量或者参数的的时候,类型不要有括号,否则报错。
ORACLE之PACKAGE的更多相关文章
- Java调用Oracle存储Package
Oracle的包Package中可以有很多存储,可通过该包的总调入口在java中直接调用. //java调用oracle的package代码 public boolean cal() throws j ...
- 公司需求知识自学-Oracle的Package的作用及用法
Oracle的Package的作用 简化应用设计.提高应用性能.实现信息隐藏.子程序重载. 1.Oracle的Package除 了把存储过程放到一堆儿以外还有没有其他的作用(好处)? 你不觉得把存储过 ...
- Oracle中 Package与Package body的介绍
1.Oracle Package的作用: 可以简化应用设计.提高应用性能.实现信息隐藏.子程序重载 2.ORACLE中的function .package.package bodies.pro ...
- oracle‘s package,function,proceture编译时无响应(解决)
在对Procedure.Function或Package进行Debug时,如果长时间没有操作,公司的防火墙会杀掉会话连接.这个时候数据库不会主动的释放会话的资源,如果再次对Procedure.Func ...
- 如何查看oracle 的package源码
select text from dba_source t where t.TYPE = 'PACKAGE BODY' and name ='EMR_RECORD_INPUT' order by li ...
- Oracle包Package调用Package
Package左侧文件: create or replace package CALL_DETAILS is strdatarange varchar2(1) := '1'; numrow_num n ...
- oracle包package的使用
创建包 包头: CREATE OR REPLACE PACKAGE test_pkg IS PROCEDURE update_sal(e_name VARCHAR2,newsal NUMBER); ...
- oracle 的PACKAGE恢复过程
SELECT obj# FROM obj$ AS OF TIMESTAMP TO_TIMESTAMP('2016-06-30', 'YYYY-MM-DD') WHERE NAME = 'PFWZ_AP ...
- Oracle Package的全局变量与Session
Oracle Package的全局变量与Session2012-07-26 aaie_ 阅 3595 转 10简单讲,同一个session下pageckage中的全局变量时公共的,会导致冲突.以下是一 ...
随机推荐
- 精通Linux的“kill”命令
无论你使用哪种操作系统,你一定会遇到某个行为失常的应用,它把自己锁死并拒绝关闭.在Linux(还有Mac),你可以用一个"kill"命令强制终结它.在这个教程中,我们将展示给你多种 ...
- 转载 从Http到Https
转载自 http://www.cnblogs.com/silin6/p/5928503.html HTTP 当你在浏览器输入一个网址 (例如 http://tasaid.com)的时候,浏览器发起一个 ...
- mybatis杂记
mybatis学习官网: 1.如果项目中使用maven管理,又引用 了mybatis框架, 下面是mybatis官网给出的 mybatis在maven中央仓库的坐标原文 详情见连接:https://c ...
- IOS开发--数据持久化篇文件存储(二)
前言:个人觉得开发人员最大的悲哀莫过于懂得使用却不明白其中的原理.在代码之前我觉得还是有必要简单阐述下相关的一些知识点. 因为文章或深或浅总有适合的人群.若有朋友发现了其中不正确的观点还望多多指出,不 ...
- 数据返回[数据库基础]——图解JOIN
废话就不多说了,开始... 一.提要 JOIN对于接触过数据库的人,这个词都不生疏,而且很多人很清楚各种JOIN,还有很多人对这个懂得也不是很透辟,此次就说说JOIN操纵. 图片是很容易被接受和懂得, ...
- HDU 5536 Chip Factory 字典树
Chip Factory Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid= ...
- C#调用WORD处理的实例代码(包含excel)
最近程序人生(http://www.manong123.com)一个朋友让我帮他做一个小功能,其实就是把WORD文档里的内容存到数据库里去,可以实现搜索并转EXCEL的功能,需求很简单,想不到加上部署 ...
- 关于Android与pc通信时中文乱码的分析和解决
初步实现了Android与pc服务器的通信之后,又碰到了传说中令人头疼不已的中文乱码问题.既然出现了乱码,那么原因自然是协议不通了.我们知道eclipse中默认的编码标准是GBK,而安卓程序开发所默认 ...
- Java中for循环以及循环中标签
1.第一种,通过迭代的方式 File[] listFiles = file.listFiles(); for (Iterator iterator = files.iterator(); iterat ...
- Asp.Net MVC 3【Filters(过滤器)】
这里分享MVC里的Filters(过滤器),什么是MVC里的过滤器,他的作用是什么? 过滤器的请求处理管道中注入额外的逻辑.他们提供了一个简单而优雅的方式来实现横切关注点.这个术语是指所有对应用程序的 ...