刚学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. 如何设置(修改)jetty(maven插件maven-jetty-plugi)的端口

    在使用jetty的maven插件,有两种方式来改变jetty server的端口,第一种方式较为简单,即: 通过命令行指定端口:mvn -Djetty.port=9999 jetty:run 另一种方 ...

  2. Spring JdbcTemplate小结

    提供了JdbcTemplate 来封装数据库jdbc操作细节: 包括: 数据库连接[打开/关闭] ,异常转义 ,SQL执行 ,查询结果的转换 使用模板方式封装 jdbc数据库操作-固定流程的动作,提供 ...

  3. ServletContext2

    ------------ContextServlet.java--------------节选-- protected void doGet(HttpServletRequest request, H ...

  4. cocos2d-x的初步学习二十一之iosandroid跨平台环境配置

    这篇文章中,我们将来构建下跨平台开发的环境配置,我自己也是参考了别人了文章,折腾了几个小时,尤其是android的配置相对麻烦些.... 参考自子龙山人:http://www.cnblogs.com/ ...

  5. Java系的大网站架构-LinkedIn和淘宝

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html 内部邀请码:C8E245J (不写邀请码,没有现金送) 国 ...

  6. GitHub使用详解

    1.GitHub是什么? GitHub这个名词既可以是那个流行的代码分享和协作网站 https://github.com/,也可以是指Git客户端工具(与其他的Git客户端工具如GitEye类似,只不 ...

  7. jQuery Pagination Ajax分页插件中文详解(转)

    一.相关demo 基本demo页面 Ajax demo页面 参数可编辑demo页面 二.简介与说明 此jQuery插件为Ajax分页插件,一次性加载,故分页切换时无刷新与延迟,如果数据量较大不建议用此 ...

  8. 关于jquery ID选择器的一点看法

    最近看到一道前端面试题: 请优化selector写法:$(".foo div#bar:eq(0)") 我给出的答案会是: 1. $("#bar") 2.  $( ...

  9. truncate 与 delete 的区别

    Delete删除的数据可以通过日志文件进行恢复 Truncate Table删除的数据不能进行恢复 Delete删除时,标识列取值保留原使用中最大值 Truncate Table删除时,标识列恢复到最 ...

  10. Apache以及PHP的默认编码问题解决(详解)

    如果你在网上搜索 “apache配置”,搜到的页面大多都会建议你在httpd.conf中加上这么一句:AddDefaultCharset GB2312.对于新手而且是只用GB2312编码的开发人来说, ...