包用于逻辑组合相关的过程和函数,它由包规范和包体两部分组成,包规范用于定义公用的常量

变量,过程和函数,在SQL*PLUS中建立包规范可以使用CREATE PACKAGE命令。

实例如下:

CREATE OR REPLACE PACKAGE emp_pkg IS

PROCEDURE update_sal(name VARCHAR2,newsal NUMBER);

FUNCTION annual_incom(name VARCHAR2) RETURN NUMBER;

END;

包头值包含了过程和函数的说明,而没有过程和函数的实现代码。包体用于实现包规范中的过程和函数,

在SQL*PLUS中建立包体可以使用CREATE PACKAGE BODY命令。实例如下:

CREATE OR REPLACE PACKAGE BODY EMP_PKG IS

PROCEDURE update_sal(name VARCHAR2,newsal NUMBER)

IS

BEGIN

UPDATE EMP set sal=newsal

where lower(ename)=lower(name);

end;

FUNCTION annual_incom(name VARCHAR2) return number

IS

annual_salary NUMBER(7,2);

begin

select sal*12 + nvl(comm,0) INTO annual_salary

from emp where lower(ename)=lower(name);

RETURN annual_salary;

end;

end;

当调用包的过程和函数时,在过程和函数名之前必须要带有包名作为前缀(包名.子程序名),

而如果要访问其他方案的包,还必须要加方案名作为前缀(方案名.包名.子程序名).

SQL> set serveroutput on

SQL> exec emp_pkg.update_sal('scott',1500);

PL/SQL procedure successfully completed.

SQL> select emp_pkg.annual_incom('scott') from dual;

EMP_PKG.ANNUAL_INCOM('SCOTT')

-----------------------------

18000

oracle 学习(五)pl/sql语言存储过程&包

首先搞清楚俩概念 存储过程(procedure)&程序包(package) 存储过程:数据库对象之一,可以理解为数据库的子程序,在客户端和服务器端可以直接调用它.触发器是与表直接关联的特殊存储 ...

Oracle数据库之开发PL/SQL子程序和包

Oracle数据库之开发PL/SQL子程序和包   PL/SQL块分为匿名块与命名块,命名块又包含子程序.包和触发器. 过程和函数统称为PL/SQL子程序,我们可以将商业逻辑.企业规则写成过程或函数保 ...

PL/SQL重新编译包无反应案例2

在这篇"PL/SQL重新编译包无反应"里面介绍了编译包无反应的情况,今天又遇到一起案例, 在测试环境中,一个包的STATUS为INVALID,重新编译时,一直处于编译状态,检查发现 ...

PL/SQL重新编译包无反应

前几天碰到一个有趣的事情:早上同事执行一个包很久没有反应,就中断了执行,发邮件让我帮忙查看具体情况,我用PL/SQL Developer登录后,找到这个包的过程中发现这个包的图标有红色叉叉,也就是说这 ...

二十三、oracle pl/sql分类三 包

包用于在逻辑上组合过程和函数,它由包规范和包体两部分组成.1).我们可以使用create package命令来创建包,如:i.创建一个包sp_packageii.声明该包有一个过程update_sal ...

pl/sql学习(4): 包package

本文简单介绍包, 目前来看我用的不多, 除了之前 为了实现 一个procedure 的输出参数是结果集的时候用到过 package. 概念: 包是一组相关过程.函数.变量.常量和游标等PL/SQL程序 ...

开发PL/SQL子程序和包及使用PL/SQL编写触发器、在JDBC中应用Oracle

1.  子程序的各个部分: 声明部分.可执行部分.异常处理部分(可选) 2.子程序的分类: A.  过程 - 执行某些操作 a.  创建过程的语法: CREATE [OR REPLACE]  PROC ...

pl/sql基础知识—包

n  包 包用于在逻辑上组合过程和函数,它由包规范和包体两部分组成. 为什么需要包:使用包可以更好的管理自己写的函数.过程 ①我们可以使用create package命令来创建包:     creat ...

Oracle PL/SQL编程之包(packages)

1.简介 包用于在逻辑上组合过程和函数,它由包规范和包体组成. 我们可以使用create package来创建包,代码如下: ok,包创建完成,通过包的代码发现包的功能就是申明包中包含的过程和方法,红 ...

随机推荐

Net重温之路一

简述: 最简单的 Hello World 准备: 工具:VS2013 + SqlServer 2008 R2 我们将以.NET Framework 4.5 为基准 开始: 一:新建解决方案 > ...

9,SFDC 管理员篇 - 安全设置

1, 使用Profile控制权限 (整体层面)     Setup | Manage Users | Profiles 总结下,一个用户只能有一个Profile,但是可以有多个Permission S ...

fineui框架

http://fineui.com/demo/#/demo/layout/fit.aspx 虽然比较丑陋,但功能实用 此框架比较简单, 框架的作用你懂的,重点是要有帮助文档, 进阶型的容易上手的帮助文 ...

AC题目简解-dp

dp类:A - Bridging signals ZOJ 3627 POJ1631 HDU1950给出一个从1-n的数字排列,求最长上升子序列长度.直接说解法吧.新开一个数组d,d[i]表示的是能构成 ...

HDU 1079 Calendar Game 博弈

题目大意:从1900年1月1日 - 2001年11月4日间选择一天为起点,两个人依次进行两种操作中的任意一种,当某人操作后为2001年11月4日时,该人获胜.问先手是否获胜 操作1:向后移一天 操作2 ...

Java并发编程笔记——技术点汇总

目录 · 线程安全 · 线程安全的实现方法 · 互斥同步 · 非阻塞同步 · 无同步 · volatile关键字 · 线程间通信 · Object.wait()方法 · Object.notify() ...

oracle入坑日记<一> 安装

学习日记系列(前辈/大神勿喷) 一.下载 下载地址:http://www.oracle.com/technetwork/cn/database/enterprise-edition/downloads ...

android 给LinearLayout中添加一定数量的控件,并让着一定数量的控件从右到左移动,每隔若干秒停顿一下,最后一个view链接第一个view,然后继续移动循环往复,形成一个死循环简单动画效果

主类:IndexAnimationLinearLayout.java package com.yw.sortlistview; import java.util.ArrayList; import j ...

「PKUWC2018」Minimax

题面 题解 强势安利一波巨佬的$blog$ 线段树合并吼题啊 合并的时候要记一下$A$点权值小于$l$的概率和$A$点权值大于$r$的概率,对$B$点同样做 时空复杂度$\text O(nlogw)$ ...

Out of memory due to hash maps used in map-side aggregation解决办法

在运行一个group by的sql时,抛出以下错误信息: Task with the most failures(4): -----Task ID:  task_201411191723_723592 ...

oracle 包头 和 包体,PL/SQL 包头和包体相关推荐

  1. 使用wrap和unwrap加密解密Oracle的PL/SQL对象(包,存储过程,函数等)代码

    使用wrap和unwrap加密解密Oracle的PL/SQL对象(包,存储过程,函数等)代码 Oracle数据库系统自带的PL/SQL对象(包,存储过程,函数等)的代码绝大部分都是使用了wrap程序加 ...

  2. 二十三、oracle pl/sql分类三 包

    包用于在逻辑上组合过程和函数,它由包规范和包体两部分组成. 1).我们可以使用create package命令来创建包,如: i.创建一个包sp_package ii.声明该包有一个过程update_ ...

  3. pl/sql 中的 包

    包: PL/SQL中将相关的对象存储到一起的一种机构形式     相关对象:变量,游标,异常,存储过程,函数      组成:包头(包规范):包含相关信息的声明,不含有任何子程序和代码         ...

  4. 免安装Oracle客户端就能使用pl/sql developer

    所幸发现了一个Windows下免安装Oracle客户端就能使用pl/sql developer轻便的方法,分享:1, 从Technical Resources | Oracle ... htdocs/ ...

  5. oracle空间数据库实验报告,Oracle数据库实验报告六 PL/SQL基础

    Oracle数据库实验报告六 PL/SQL基础 -by QQC from BTBU [实验目的] PL/SQL的安装网上有很多教程这里就不做赘述了,如果后序需求大的话我再考虑做一期PL/SQL安装使用 ...

  6. Oracle PL/SQL编程之包(packages)

    1.简介 包用于在逻辑上组合过程和函数,它由包规范和包体组成. 我们可以使用create package来创建包,代码如下: ok,包创建完成,通过包的代码发现包的功能就是申明包中包含的过程和方法,红 ...

  7. Oracle 12c中增强的PL/SQL功能

    英文链接:http://www.oracle.com/technetwork/issue-archive/2013/13-sep/o53plsql-1999801.html Oracle 12c增强了 ...

  8. oracle输入数字类型吗,PL/SQL Number数字类型函数

    PL/SQL Number数字类型函数 更新时间:2007年03月21日 00:00:00   作者: ABS(x) 函数,此函数用来返回一个数的绝对值. ACOS(x)函数,返回X的反余弦值.X范围 ...

  9. Oracle数据库第二课——使用PL/SQL进行初步编程,了解PL/SQL的相关知识

    知识点:了解PL/SQL的编程的基础:了解PL/SQL的注释:掌握PL/SQL的块结构:掌握PL/SQL的数据类型.运算符.字符集.标识符:掌握PL/SQL语句块的书写.变量的声明和赋值 1.PL/S ...

  10. 不安装Oracle客户端情况下使用PL/SQL 远程连接数据库

    我是觉得Oracle太大,又不好装,装了跑得又慢,所以就希望有一个能在不安装客户端的情况下连接数据库. 如果本地用不到oracle数据库的话,其实是可以不必安装oracle,只安装pl/sql就能访问 ...

最新文章

  1. intellijidea课程 intellijidea神器使用技巧 3-1 列操作
  2. UA MATH571A R语言回归分析实践 一元回归1 NBA球员的工资
  3. OnScrollListener回调分析
  4. boost::multiprecision模块debug_adaptor相关的测试程序
  5. java測試動態方法_java反射学习
  6. 第一百五十一期:最新计算机技能需求排名出炉:Python仅排第三,第一你猜得到吗?
  7. 【Python】一些函数
  8. EasyUI动画效果
  9. Windows2003四大必知版本
  10. Python之路(第十六篇)xml模块、datetime模块
  11. 西门子PLC面向对象编程
  12. 微信小程序实战之 goods(订餐页)
  13. [音乐] 逆转裁判1~6【五分半无缝衔接】追求组曲
  14. 桌面小部件Wight父类AppWidgetProvider的三个方法
  15. 前端基础之CSS盒子模型
  16. QGraphicsItem实现动态蝴蝶(QT5开发及实例)
  17. 部编版三下《燕子》教学反思
  18. [转帖]实时协同设计CAD平台
  19. 伦敦同业拆借利率(LIBOR)
  20. 完整dm368打印信息

热门文章

  1. 期货期权各个品种详情
  2. fabric ca 使用案例
  3. 客户合并修改需求 @熊哥
  4. 如何判断微信付款码和支付宝付款码
  5. 计算机芯片级维修包括哪些,计算机芯片级维修中心(芯片级维培训教材)b.doc
  6. 揭秘你所看不见的技术原理 - 广告推荐系统
  7. android iphone 记事本,手机上用什么记事本软件好?iPhone求推荐一款便签记事本app...
  8. 基于三周加速度传感器的计步器设计
  9. linux csv乱码,CSV格式文件中文乱码问题解决
  10. 使用pygame制作Flappy bird小游戏