Oracle——包

包用于在逻辑上组合过程和函数,它由包规范和包体两个部分组成。
(1)首先用CREATE
PACKAGE创建包规范,只包含过程和函数的说明,但没有过程和函数的实现代码

--创建一个包名称为sp_package
--声明该包含有一个过程update_sal
--声明该包含有一个函数annual_income
CREATE OR REPLACE PACKAGE sp_package IS
PROCEDURE update_sal(spname VARCHAR2, sal
NUMBER);
FUNCTION 
annual_income(spNAme VARCHAR2) RETURN NUMBER;
END;

(2)用CREATE PACKAGE BODY命令创建包体,即实现函数和过程的代码
CREATE
OR REPLACE PACKAGE BODY sp_package IS
  PROCEDURE
update_sal(spname VARCHAR2, newsal NUMBER) IS
    BEGIN
     
UPDATE emp SET sal = newsal WHERE ename=spname;
    END;
    
 
FUNCTION annual_income(spName
VARCHAR2)
  RETURN NUMBER IS
  yearSal number(7,2);
 
BEGIN
    SELECT
(sal+NVL(comm,0))*12 INTO yearSal FROM emp WHERE
ename=spNAme;
    RETURN yearSal;
 
END;
END;
(3)调用包中的过程和函数
CALL
sp_package.annual_income(‘SMITH‘);

CALL sp_package.annual_income(‘SMITH‘)
into:income;

Oracle——包,布布扣,bubuko.com

时间: 2024-07-29 04:09:44

Oracle——包的相关文章

oracle 包,函数,过程,块的创建和执行及在java中执行(转)

SQL> create or replace procedure sp_guocheng1 is--如果有这个名字就替换  2  begin--执行部分  3  insert into guocheng values('liyifeng','liyifeng');  4  end;  5  /  --执行的意思 Procedure created 显示错误SQL> show error;Errors for PROCEDURE LIYIFENG.SP_GUOCHENG1: LINE/COL E

oracle包详解(二)【weber出品】

一.重载子程序 PL/SQL中的重载功能: 1. 能够使用户创建两个或多个同名的子程序 2. 要求子程序的形式参数的数量,顺序或者数据类型不一样 3. 能够使用户使用不同的数据灵活的调用子程序 4. 对已经存在的代码的功能的扩展 注意: 重载可以对本地子程序,包,包中的子程序,方法进行重载,不能对标准的子程序进行重载 示例:先创建表和序列 conn scott/tiger drop table d purge; create table d as select * from dept where

Oracle包的概念

转自:http://www.cnblogs.com/lovemoon714/archive/2012/02/29/2373695.html 1.为什么要使用包?       答: 在一个大型项目中,可能有很多模块,而每个模块又有自己的过程.函数等.而这些过程.函数默认是放在一起的(如在PL/SQL中,过程默认都是放在一起 的,即Procedures中),这些非常不方便查询和维护,甚至会发生误删除的事件.所以通过使用包就可以分类管理过程和函数.     而且在包中还可以自定义自定义类型,从而在过程

Oracle 包(package)

1.包 包是一组相关过程.函数.变量.常量#SinaEditor_Temp_FontName.类型和游标等PL/SQL程序设计元素的组合.包具有面向对象设计的特点,是对这些PL/SQL程序设计元素的封装.一个包由两个分开的部分组成: (1)包package声明或定义:包定义部分是创建包的规范说明,声明包内数据类型.变量.常量.游标等元素.这部分也是为使用者提供了透明的接口. (2)包体packpage body:包体是包定义部分的具体实现. (3)将有联系的对象打成包,方便使用 (4)包中对象包

oracle包概述(一)【weber出品】

一.PL/SQL包概述 1. 什么是PL/SQL包: 相关组件的组合:PL/SQL类型.变量,数据结构,和表达式.子程序: 过程和函数 2. 包的组成部分: 由两部分组成: 包头 包体 3. 包的优点 一次读取多个对象进入内存 二.PL/SQL包的组件 包头:公共部分:包内和包外的程序都可以访问 包体:私有部分:包体定义的变量或者程序只能被本包内的程序调用 1. 创建包头 语法: CREATE [OR REPLACE] PACKAGE package_name IS|AS public type

oracle包的创建

一 包的组成 1)包头(package):包头部分申明包内数据类型,常量,变量,游标,子程序和异常错误处理, 这些元素为包的公有元素. 2)包主体(package body):包主体则是包定义部分的具体实现,它负责为包头中所声明子程序 提供具体的实现,在包主体中还可以声明包的私有元素 3)包头和包主体分开编译,并作为两个分开的对象分别存放在数据库字典中 --删除package --drop package pkg_lxg_test; --1)首先创建package头(头和body的sql不要写在

Oracle 包练习

1 /* 2 创建一个程序包,包里面实现如下功能 3 1:构建一个过程,根据用户传入的最低工资计算出emp表中 4 低于最低工资的人数及这些人员信息 5 2:构建一个函数,根据传入的年月,计算该日期入职 6 员工的人数 7 */ 8 9 --包规范 10 create or replace package emp_controller 11 as 12 --创建一个ref游标 13 type emplist is ref cursor return emp%rowtype; 14 15 proc

oracle包package的使用

创建包 包头: CREATE OR REPLACE PACKAGE test_pkg IS PROCEDURE update_sal(e_name VARCHAR2,newsal NUMBER);     --  定义一个函数 FUNCTION ann_income(e_name VARCHAR2) RETURN NUMBER;    -- 定义一个存储过程 END; 包体: CREATE OR REPLACE PACKAGE BODY test_pkg IS PROCEDURE update_

Oracle包Package调用Package

Package左侧文件: create or replace package CALL_DETAILS is strdatarange varchar2(1) := '1'; numrow_num number(5) := 1; numcol_num number(5) := 1; total_currency varchar2(2) := '01'; strgranularity_five varchar2(1) := '4'; procedure start_cal(strgranulari