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中的全局变量时公共的,会导致冲突.以下是一 ...
随机推荐
- python challenge第1关--NoteBook上的“乱码”
在 python challenge第0关中已经得到第1关的地址了: http://www.pythonchallenge.com/pc/def/map.html 一.观察地址栏和标签: What a ...
- 关于mysql_fetch_****
今天调试如下代码: mysql_select_db('content',$link);//选择数据库 mysql_query("set names utf8");//设置编码格式 ...
- idea 搭建java项目
IntelliJ IDEA 12.0搭建Maven Web SSH2架构项目示例 以IDEA为环境,搭建SSH架构示例程序,用Maven管理依赖.这篇文章是一个示例,你需要首先搭建好M ...
- CESAsia:英特尔RealSense3D实感技术亮眼
每年CES展会上都会有许多新奇的.更具创意的产品和创新技术亮相,而作为全球科技盛会之一的CES Asia也不例外.在CES Asia2016展会上,英特尔(Intel)可谓是有备而来,带着旗下支持Re ...
- MEF 编程指南(六):导出和元数据
声明导出解释了部件导出服务的基础知识和价值观(Values).有时候出于种种原因,导出关联信息是非常必要的.通常,用于解释关于功能公共契约的具体实现.允许导入满足约束要求的导出,或者导入所有可用的实现 ...
- cocos2d-x 多线程以及线程同步
转自:http://blog.csdn.net/zhy_cheng/article/details/9116479 cocos2d-x引擎在内部实现了一个庞大的主循环,每帧之间更新界面,如果耗时的操作 ...
- Spring 的两个配置容器的讲解
容器 是Spring框架的核心,是组件存活的地方.Spring容器使用DI管理所有组成应用系统的组件,协作组件之间建立联.而且, 这些对象简洁易懂,降低耦合性,支持重用,容易被测试. Spring提供 ...
- SQL性能优化工具TKPROF
全名为Trace Kernel Profile,用来格式化跟踪文件,是一个命令行工具. 主要的格式例如以下: tkprof tracefile outputfile - tracefile:要分 ...
- xcode 左边导航栏中,类文件后面的标记“A”,"M","?"……等符号的含义???
"M" = Locally modified "U" = Updated in repository "A" = Locally a ...
- 1083. List Grades (25)
the problem is from PAT,which website is http://pat.zju.edu.cn/contests/pat-a-practise/1083 and the ...