刚学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. JMS开发(一):基础理论认知

    JMS全称是Java Message Service.其是JavaEE技术规范中的一个重要组成部分,是一种企业消息处理的规范.它的作用就像一个智能交换机,它负责路由分布式应用中各个组件所发出的消息. ...

  2. 在VB中使用Linq To SQLite注意事项

    昨天使Linq To SQLite 支持VB,今天在VB中写了几条Linq语句,发现了几个问题: 1.在Linq To SQLite中的Linq语句查询后并不是得到的匿名数据类,而是将Linq转换为S ...

  3. 让sublime text 3默认新建GBK文件

    想让sublime text支持显示或者保存中文,需要安装插件convertToUTF8,具体安装可以问度娘. 安装插件以后,想让保存的html文件支持中文,可以通过ctrl+shift+C来完成.但 ...

  4. jeewx的使用_02 解析微信服务器post过来的数据

    如果在微信公众号接入了第三方的URL,那么用户微信服务器的请求将会被推送到第三方的URL上面,那么该如何解析数据呢?下面来分析 找到MessageUtil.java 这个类中有一个parseXml的静 ...

  5. contiki-main.c 一 打印观察 <contiki学习之五>

    说明: 本文依赖于 contiki/platform/native/contiki-main.c 文件. 在项目工程目录下的hello-world.c 文件里面,有许多的宏,但没有最关键的main() ...

  6. 无废话C#设计模式系列文章

    不错的系列文章 原文:http://www.cnblogs.com/lovecherry/archive/2007/10/17/927728.html 本系列文章从公司内部的知识分享修改而来,有错误或 ...

  7. C#文件读写常用类介绍

    首先要熟悉.NET中处理文件和文件夹的操作.File类和Directory类是其中最主要的两个类.了解它们将对后面功能的实现提供很大的便利.      本节先对和文件系统相关的两个.NET类进行简要介 ...

  8. sublime自定义snippet代码片段

    相信很多人喜欢sublime编辑工具有两个原因:第一sublime很轻巧方便:第二sublime提供很多自定义拓展功能,包括很简单且和很好用的代码片段功能snippet文件. 今天,在这里就介绍下su ...

  9. C++ AfxBeginThread1

    9*9乘法口诀 关键点 实现过程 在 class CMfc01Dlg : public CDialog {     // Construction public:     CMfc01Dlg(CWnd ...

  10. mysql 5.1 到 mysql 5.2的出现的索引BTREE问题 use near 'USING BTREE

    转自:http://hi.baidu.com/our_poll/item/669c5ce885b33ff1e0a5d4fc 我本机测试是安装的 mysql 5.1 , 但服务器上确是使用的 mysql ...