刚学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. oracle 全文检索技术

    1.查看用户: select * from dba_users WHERE username='CTXSYS';select * from dba_users WHERE username='CTXS ...

  2. [置顶] Jquery中DOM操作(详细)

    Jquery中的DOM操作 为了能全面的讲解DOM操作,首先需要构建一个网页. HTML代码: <%@ page language="java" import="j ...

  3. 为什么要坚持用ASP.NET MVC!(②)

    尽管ASP.NET MVC架构和Web Form架构区别很大,但是还是有很多共同之处.毕竟它们都是以ASP.NET API与.NET框架为基础构建的.比较一下ASP.NET MVC和Web Form框 ...

  4. windbg命令分类与概述

    WinDBG的大多数功能是以命令方式工作的, 本系列将介绍WinDBG的三类命令, 标准命令, 元命令和扩展命令. =============== 标准命令 =============== 标准命令用 ...

  5. Winform开发框架之权限管理系统

    本文章转载:http://www.cnblogs.com/wuhuacong/archive/2011/05/08/2040620.html 至此,权限管理模块介绍已经完毕,下面给出一个调用例子Dem ...

  6. 【转】VIM 快速注释

    我是用自己自定义的,跟你分享一下吧.希望能帮到你. 在.vimrc中加入下面的语句:vmap <C-S-P>    dO#endif<Esc>PO#if 0<Esc> ...

  7. 在Web上调用Ocx控件

    原文:http://blog.csdn.net/goodadult2012/article/details/6343369 在HTML页面中使用ActiveX控件包含三个基本操作:将控件放入HTML中 ...

  8. SAP ABAP程序下载器(增强版)

    在实际的项目中运用过几次 Mass download 这个程序,发现下载ABAP代码还真是利器,目前最新的版本是1.4.4,已经n年没有更新过了.使用过程中,发现其导出的HTML格式的代码有问题,包括 ...

  9. Metadata Lock原理7

    http://blog.itpub.net/22664653/viewspace-1791744/ 一 简介 通过前面两篇文章的介绍,相信读到这里的各位对MDL 锁已经有了比较深入的了解了,本文将结合 ...

  10. 关于NuDaqPci 数据采集

    最近在做公司一个fct的测试及调试软件 设计到的比较多的通信问题 1,Gpib通信(调用ADL-GPIB) 2,串口通信 3,Usb通信(调用USBXpress) 4,Pci通信(调用PCIS-DAS ...