程序包由PL/SQL程序元素(变量,类型)和匿名PL/SQL(游标),命名PL/SQL 块(存储过程和函数)组成。

程序包可以被整体加载到内存中,这样可以大大加快程序包中任何一个组成部分的访问速度。

程序包由规范和包主题组成:

规范:

用于规定程序包中可以使用哪些变量,类型,游标和子程序(该规范一定要在“包主体”之前被创建)

例子:

创建一个程序包“规范”,首先在该程序中声明一个可以获取指定部门的平均工资的函数,然后再声明一个可以实现按照指定比例上调指定职务的工资的存储过程

create or replacepackage pack_emp is

function fun_avg_sal(num_deptno number) return number;--获取指定部门的平均工资

procedure pro_regulate_sal(var_job varchar2,num_proportion number);--按照指定比例上调指定职务的工资

end pack_emp;

/

主体:

包含了在规范中声明的游标,过程和函数的实现代码,还有内部变量。

创建程序包pack_emp的主体,在该主体中实现对应“规范”中声明的函数和存储过程:

create or replacepackage body pack_emp is

function fun_avg_sal(num_deptno number) return number is

num_avg_sal number;

begin

select avg(sal) into num_avg_sal from emp

where deptno=num_deptno;

return(num_avg_sal);

exception

when no_data_found then

dbms_output.put_line('该部门编号不存在雇员记录');

return 0;

end fun_avg_sal;

procedure pro_regulate_sal(var_job varchar2,num_proportion number) is

begin

update emp

set sal =sal*(1+num_proportion)

where job=var_job;

end pro_regulate_sal;

end pack_emp;

/

调用该包中的函数和过程:

declare

num_deptno emp.deptno%type;

var_job emp.job%type;

num_avg_sal emp.sal%type;

num_proportion number;

begin

num_deptno:=10;

num_avg_sal:=pack_emp.fun_avg_sal(num_deptno);

dbms_output.put_line(num_deptno||'号部门的平均工资是:'||num_avg_sal);

var_job:='SALESMAN';

num_proportion:=0.1;

pack_emp.pro_regulate_sal(var_job,num_proportion);

end;

/

20181220 Oracle程序包基本开发逻辑

做事情,开始也许比较迷茫,也可能工具不会,也可能语言不会,但不要害怕 多去思考而不是盲目的开始工作,盲目的听从,程序开发都是不断训练自己的思维能力. 做每件事情都是有意义的,思考为什么这么做,这么做的 ...

Oracle程序包

程序包由两部分构成:规范(specification)和主体(body). 创建表 create table PEOPLE ( ID NUMBER primary key not null, NAME ...

Oracle数据库程序包全局变量的应用

1 前言  在程序实现过程中,经常用遇到一些全局变量或常数.在程序开发过程中,往往会将该变量或常数存储于临时表或前台程序的全局变量中,由此带来运行效率降低或安全隐患&lt ...

[强烈推荐]ORACLE PL/SQL编程详解之七:程序包的创建与应用(聪明在于学习,天才在于积累!)

原文:[强烈推荐]ORACLE PL/SQL编程详解之七:程序包的创建与应用(聪明在于学习,天才在于积累!) [强烈推荐]ORACLE PL/SQL编程详解之七: 程序包的创建与应用(聪明在于学习,天 ...

Oracle编程入门经典 第11章 过程、函数和程序包

目录 11.1          优势和利益... 1 11.2          过程... 1 11.2.1       语法... 2 11.2.2       建立或者替换... 2 11.2 ...

Oracle存储过程和程序包

一.为什么要用存储过程? 如果在应用程序中经常需要执行特定的操作,可以基于这些操作简历一个特定的过程.通过使用过程可以简化客户端程序的开发和维护,而且还能提高客户端程序的运行性能. 二.过程的优点? ...

Oracle学习笔记十四 内置程序包

扩展数据库的功能 为 PL/SQL 提供对 SQL 功能的访问 用户 SYS 拥有所有程序包 是公有同义词 可以由任何用户访问 一些内置程序包 程序包名称 说明 STANDARD和DBMS_STAND ...

Oracle学习笔记十二 子程序(存储过程、自定函数)和程序包

子程序 子程序:命名的 PL/SQL 块,编译并存储在数据库中.   子程序的各个部分: 1.声明部分 2.可执行部分 3.异常处理部分(可选) 子程序的分类: 1.过程 - 执行某些操作 2.函数 ...

Oracle基础<4>--程序包

一:程序包定义(包括1.程序包规范 2.程序包主体) 程序包是一种数据库对象,它是对相关pl/sql 类型.子程序.游标.异常.变量和常量的封装. 1.程序包规范:可以声明类型.变量.常量.异常.游标 ...

随机推荐

Bootstrap css背景图片的设置

一. 网页中添加图片的方式有两种 一种是:通过标签直接插入到html中 另一种是:通过css背景属性添加 居中方法:水平居中的text-align:center 和 margin ...

JQuery操作HTML文档

一.JQuery选择元素 1.$("p").click(function(){$(this).hide();} 点击HTML页面的任何p元素都会隐藏该p元素 2.$("# ...

Centos中安装vim

Centos, 默认没有安装VIM, 所以要当然要安装了, 直接yum install vim是不行的, 首先: yum install vim* 会看到vim-enhanced这个包,没错, 我们要 ...

js add media query

var msViewportStyle = document.createElement("style"); msViewportStyle.appendChild( docume ...

substr vs substring

javascript(js)中的 substring和substr方法 Posted on 2009-02-26 14:14 chinaifne 阅读(33698) 评论(0) 编辑 收藏 1.sub ...

面向对象的JS代码

在下面的例子中可以找到强类型语言中所描述的类,属性,方法,对象.

oracle强大的包,ORACLE 程序包相关推荐

  1. Oracle 原理: 初步认识程序包

    oracle 中的程序包和C中的类库,JAVA中的package包类似.是过程.函数.变量.游标.异常的集合.程序包由规范和主体两部分组成.规范主要用于声明.声明公有对象(类型.常量.变量.异常.游标 ...

  2. oracle v sql不存在,程序包oracle.sql不存在

    今天项目在maven install 的时候报"程序包oracle.sql不存在,类TIMESTAMP找不到"的问题: plugins:maven-compiler-plugin: ...

  3. idea 启动项目找不到程序包,提示程序包不存在

    我是一个父子工程项目,项目在编译,build,rebuild的时候都没用报错,但用idea启动的时候就报错 error:找不到该程序包.或者类- 在网上找了很多方法都没有解决:reimport mav ...

  4. idea tomcat 找不到程序包_IDEA 程序包不存在,找不到符号但是明明存在对应的jar包(问题分析及解决方案)...

    IDEA 程序包不存在,找不到符号但是明明存在对应的jar包(问题分析及解决方案) 环境 IntelliJ IDEA 2020.1 JDK1.8 前提概要 问题1和问题2其实是同一个问题,但是表现上有 ...

  5. IDEA对项目进行(package)生成jar包出现程序包不存在

    错误截图 一般出现这个情况是由于项目中引入了外界jar包,并且不是通过maven进行引入的,所以在使用maven进行打包时会出现,找不到程序包的问题. 所以对于解决这个问题,就是通过maven将该包从 ...

  6. Oracle的子查询和程序包上机1

    --1. --利用问题1中创建的表salayr_details表,创建work_days()函数, --接受EMPCODE雇员编号,并检查所有雇员的工作天数. --标准工作天数22天,雇员每少工作一天 ...

  7. 怎么读取matlab程序包,Nifti程序包,用于写入,读取和处理医学影像,适用于MATLAB

    [实例简介] 依赖于MATLAB,可以读取nii格式的文件,写入和操作输入的医学影像数据 使用方法:1.下载压缩包并解压至MATLAB安装路径的toobox文件夹下 2.enjoy it! [实例截图 ...

  8. 解决maven打包 无法加载本地lib/下的jar包问题(程序包XXX不存在)

    在进行抖音支付时,引用了tt_pay-1.0.5.jar,在maven打包时,报XXX不存在 一.目录结构 二.解决方法 <build><finalName>xiaoya-ap ...

  9. java: 找不到符号或者包 (eg.程序包org.neo4j.ogm.annotation不存在)

    错误原因 解决办法 点击IDEA右侧Maven,在其弹框的左上角点击刷新按钮即可,此时IDEA会自动为你去更新依赖

最新文章

  1. golang 得到 结构体 struct 标签 tag 内容 结构体中的``数据
  2. 【Android】11.3 屏幕旋转和场景变换过程中GridView的呈现
  3. 诺禾致源css客户端,诺禾,诺禾致源:CSS 基础教学
  4. 夸克、QQ浏览器、简单搜索竞品分析报告
  5. 可访问性不一致 可访问性低_什么是网站可访问性?
  6. 我们大家都知道mysql_10个mysql中select语句的简单用法
  7. 关于Gossip协议的几个问题
  8. 轨迹跟踪_预描点寻找
  9. C++深拷贝与浅拷贝以及写时复制
  10. 牛客 2021年度训练联盟热身训练赛第二场 E题NIH Budget
  11. 华为交换机OSPF和BGP知识
  12. 技术沙龙 | Android应用之插件化
  13. 第13章 集成学习和随机森林 学习笔记中 oob
  14. 2022年北京购房攻略三 (政策篇)
  15. Docker镜像安装宋体
  16. 学习记录540@SVN查看日志报错:Item is not readable
  17. 成人大专计算机专业总结,成人大专自我鉴定300字大专函授【八篇】
  18. android 开发之蓝牙开发
  19. 【阅读笔记】联邦学习实战——联邦个性化推荐案例
  20. 虚拟机有网,主机没有网

热门文章

  1. 《算法竞赛入门经典》计算组合数问题
  2. 【ARM】Tiny4412裸板编程之异常
  3. 【Linux】一步一步学Linux——as命令(260)
  4. 【C语言项目】贪吃蛇游戏(下)
  5. java print int_java – 在printin输入int
  6. pyqt5从子目录加载qrc文件_【JVM系统学习之路】一篇看懂类加载
  7. 电脑屏保在哪里设置_超火的时钟屏保,有点个性!
  8. python写快排_python 实现快速排序
  9. h5封装去底部_干货分享 | 一步一步教你在SpringBoot中集成微信支付H5支付
  10. 二叉树的链式结构的非递归遍历