刚学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的更多相关文章

  1. Java调用Oracle存储Package

    Oracle的包Package中可以有很多存储,可通过该包的总调入口在java中直接调用. //java调用oracle的package代码 public boolean cal() throws j ...

  2. 公司需求知识自学-Oracle的Package的作用及用法

    Oracle的Package的作用 简化应用设计.提高应用性能.实现信息隐藏.子程序重载. 1.Oracle的Package除 了把存储过程放到一堆儿以外还有没有其他的作用(好处)? 你不觉得把存储过 ...

  3. Oracle中 Package与Package body的介绍

    1.Oracle Package的作用: 可以简化应用设计.提高应用性能.实现信息隐藏.子程序重载 2.ORACLE中的function   .package.package   bodies.pro ...

  4. oracle‘s package,function,proceture编译时无响应(解决)

    在对Procedure.Function或Package进行Debug时,如果长时间没有操作,公司的防火墙会杀掉会话连接.这个时候数据库不会主动的释放会话的资源,如果再次对Procedure.Func ...

  5. 如何查看oracle 的package源码

    select text from dba_source t where t.TYPE = 'PACKAGE BODY' and name ='EMR_RECORD_INPUT' order by li ...

  6. Oracle包Package调用Package

    Package左侧文件: create or replace package CALL_DETAILS is strdatarange varchar2(1) := '1'; numrow_num n ...

  7. oracle包package的使用

    创建包 包头: CREATE OR REPLACE PACKAGE test_pkg IS PROCEDURE update_sal(e_name VARCHAR2,newsal NUMBER);  ...

  8. oracle 的PACKAGE恢复过程

    SELECT obj# FROM obj$ AS OF TIMESTAMP TO_TIMESTAMP('2016-06-30', 'YYYY-MM-DD') WHERE NAME = 'PFWZ_AP ...

  9. Oracle Package的全局变量与Session

    Oracle Package的全局变量与Session2012-07-26 aaie_ 阅 3595 转 10简单讲,同一个session下pageckage中的全局变量时公共的,会导致冲突.以下是一 ...

随机推荐

  1. [C语言 - 3] 字符串

    字符数组 char * 看做一个特殊的字符数组, 在字符串结束为止添加'\0'结束符 (ASCII码0), 没有\0结尾的是普通的字符数组. 使用双引号定义的字符串自动在尾部加上\0 puts(s)函 ...

  2. Codeforces Round #362 (Div. 2) C. Lorenzo Von Matterhorn (类似LCA)

    题目链接:http://codeforces.com/problemset/problem/697/D 给你一个有规则的二叉树,大概有1e18个点. 有两种操作:1操作是将u到v上的路径加上w,2操作 ...

  3. Educational Codeforces Round 1(D. Igor In the Museum) (BFS+离线访问)

    题目链接:http://codeforces.com/problemset/problem/598/D 题意是 给你一张行为n宽为m的图 k个询问点 ,求每个寻问点所在的封闭的一个上下左右连接的块所能 ...

  4. js隐藏

    function openLoadingIcon(){ $("#dataLoading").css("display","block"); ...

  5. ASP.NET- 使用NPOI导入导出标准Excel

    尝试过很多Excel导入导出方法,都不太理想,无意中逛到oschina时,发现了NPOI,无需Office COM组件且不依赖Office,顿时惊为天人,怀着无比激动的心情写下此文. 曾使用过的方法 ...

  6. ASP导出Word带页眉页脚,中文不乱码

    关键代码: <% Response.Clear() Response.CodePage= Response.Charset="UTF-8" Response.ContentT ...

  7. git使用具体介绍

    1. Git概念  1.1. Git库中由三部分组成         Git 仓库就是那个.git 文件夹,当中存放的是我们所提交的文档索引内容,Git 可基于文档索引内容对其所管理的文档进行内容追踪 ...

  8. android开发之Fragment加载到一个Activity中

    Fragments 是android3.0以后添加的.主要是为了方便android平板端的开发.方便适应不同大小的屏幕.此代码是为了最简单的Fragment的使用,往一个Activity中添加Frag ...

  9. C#_Fileuploadify_notMvc

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.c ...

  10. php引用详解

    <?php function foo($bar){   $bar='111111111'; } $str='2222222222222'; foo($str); echo $str; //out ...