Oracle包的概念

转自:http://www.cnblogs.com/lovemoon714/archive/2012/02/29/2373695.html

1、为什么要使用包?

      答: 在一个大型项目中,可能有很多模块,而每个模块又有自己的过程、函数等。而这些过程、函数默认是放在一起的(如在PL/SQL中,过程默认都是放在一起 的,即Procedures中),这些非常不方便查询和维护,甚至会发生误删除的事件。所以通过使用包就可以分类管理过程和函数。
     而且在包中还可以自定义自定义类型,从而在过程和函数中可以直接使用自定义变量。Oracle中包的概念与JAVA中包的概念非常类似,只是JAVA中的包是为了分类管理类,但是关键字都是package。
     包分两部分,包规范包体

2、包的使用

(1)定义包规范,包规范可单独存在。

--定义包规范create or replace package p_stuas    --定义结构体    type re_stu is record(        rname student.name%type,        rage  student.age%type    );    --定义游标    type c_stu is ref cursor;    --定义函数    function numAdd(num1 number,num2 number)return number;    --定义过程    procedure GetStuList(cid in varchar2,c_st out c_stu); end;

(2)实现包规范,即包体,名称必须一致,同样的游标定义不能出现,但结构体可以,方法、过程必须实现。

--实现包体,名称一致。create or replace package body p_stuas    --游标和结构体,包规范中已声明,包体中不用再声明,直接使用。

    --实现方法       function numAdd(num1 number,num2 number)return number    as        num number;    begin        num:=num1+num2;        return num;    end;

    --实现过程    procedure GetStuList(cid varchar2,c_st out c_stu)    as        r_stu re_stu; --直接使用包规范中的结构    begin        open c_st for select name,age from student where classid=cid;       -- 如果已经在过程中遍历了游标,在使用这个过程的块中,将没有值。       -- loop       --     fetch c_st into r_stu;         --     exit when c_st%notfound;       --     dbms_output.put_line(‘姓名=‘||r_stu.rname);       -- end loop;    end;end;

(3)使用

declare    c_stu p_stu.c_stu;   --定义包中游标变量    r_stu p_stu.re_stu;  --定义包中结构体变量    num number;begin    --使用及遍历包中过程返回的结果集    p_stu.GetStuList(‘C001‘,c_stu);    loop        fetch c_stu into r_stu;        exit when c_stu%notfound;        dbms_output.put_line(‘姓名=‘||r_stu.rname);    end loop;

    --使用包中的方法    select p_stu.numAdd(5,6) into num from dual;    dbms_output.put_line(‘Num=‘||num);end;

时间: 2024-11-02 20:57:03

Oracle包的概念的相关文章

Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之ORACLE集群概念和原理(二)

ORACLE集群概念和原理(二) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总.然后形成体系的总结,一则进行回顾复习,另则便于查询使用.本图文文档亦源于此.阅读Oracle RAC安装与使用教程前,笔者先对这篇文章整体构思和形成进行梳理.由于阅读者知识储备层次不同,我将从Oracle RAC安装前的准备与规划开始进行整体介绍安装部署Oracle RAC.始于唐博士指导,对数据库集群进行配置安装,前

Oracle——包

包用于在逻辑上组合过程和函数,它由包规范和包体两个部分组成.(1)首先用CREATE PACKAGE创建包规范,只包含过程和函数的说明,但没有过程和函数的实现代码 --创建一个包名称为sp_package--声明该包含有一个过程update_sal--声明该包含有一个函数annual_incomeCREATE OR REPLACE PACKAGE sp_package ISPROCEDURE update_sal(spname VARCHAR2, sal NUMBER);FUNCTION  an

java 中包的概念,常量,静态与继承

一.包的概念:创建,使用. 1.新建包: 最上面一行,之前不能再有其它代码了. package 包名; 注意:包名一般都有命名的规范.例如:com.itnba.maya.zy(从大到小). 2.使用包: import 包名.*; import 包名.类名; 例如:import com.itnba.maya.zy.*; 注意:import不要放在package的上面上 package com.itnba.maya.zy; import com.itnba.maya.zyy.*; //从别的包里引用

[Oracle] Golden Gate - 概念和机制

Golden Gate(简称OGG)提供异构环境下交易数据的实时捕捉.变换.投递. OGG支持的异构环境有: OGG的特性: 对生产系统影响小:实时读取交易日志,以低资源占用实现大交易量数据实时复制 以交易为单位复制,保证交易一致性:只同步已提交的数据 高性能 智能的交易重组和操作合并 使用数据库本地接口访问 并行处理体系 灵活的拓扑结构:支持一对一.一对多.多对一.多对多和双向复制等 支持数据过滤和转换 可以自定义基于表和行的过滤规则. 可以对实时数据执行灵活影射和变换. 提供数据压缩和加密:

模块和包的概念,包的使用

---恢复内容开始--- 模块的概念 前面讲了一些内置模块我们可以知道,我么们在进行import的时候后跟的os或者subprocess等都是可以找到他们存在的位置的 这里我们可以看到在python下的lib文件夹内有这一个个的.py文件这些都是一些写好的含有多个可被调函数的文件, 这样我们应该可以看懂一件事,那就是我们会把一整个写好了函数的.py文件定义为模块 模块只有被调用或者直接使用两种途径 这两者是不可以都能做得 使用模块有什么好处? 最大的好处是大大提高了代码的可维护性. 其次,编写代

go语言笔记——包的概念本质上和java是一样的,通过大小写来区分private

示例 4.1 hello_world.go package main import "fmt" func main() { fmt.Println("hello, world") } 4.2.1 包的概念.导入与可见性 包是结构化代码的一种方式:每个程序都由包(通常简称为 pkg)的概念组成,可以使用自身的包或者从其它包中导入内容. 如同其它一些编程语言中的类库或命名空间的概念,每个 Go 文件都属于且仅属于一个包.一个包可以由许多以 .go 为扩展名的源文件组成,

2018-3-11Linux系统管理(10)(11)程序包初步概念及后端管理工具

本章我们来介绍Linux程序包的概念及安装校验卸载等管理操作. 一.概述 我们不止一遍讲述过操作系统的概念,首先是硬件,计算机它的计算能力都是在硬件设计逻辑上实现的,而这个设计硬件设计逻辑不同厂商所生产的硬件芯片及接口的方式都不一样.那么在向上一层就是将硬件规格给封装起来的操作系统层,它将硬件的差异化和复杂化而由丑陋的接口隐藏起来,向上提供了一个简洁而又统一的接口,我们称之为系统调用(system call),但系统调用仍然很底层,为了加速开发和易于维护,在系统调用的半层接口上又封装了一个更复杂

Go语言基础之包的概念

包的概念 Golang的包概念和Python一样,把相同功能的代码都放到一个目录,称之为包,包可以被其它包引用,main包(main.go)是用来生成可执行文件,每个程序只有一个main包,而在main包里只有一个main函数,包的主要用途是提供代码可复用性,如果某个包的函数或者变量需要被调用那么函数或者变量名必须是大写的,而不是小写. 包的导入 要在代码中引用其他包的内容,需要使用 import 关键字导入使用的包.具体语法如下: import "包的路径" 注意事项: import

oracle的基本概念

一·简介 1)数据库(DataBase) 用于存放数据,管理数据的存储仓库,是有效组织在一起的数据集合. 2)常用数据库软件 大型数据库:Oracle 中小型数据库:Mysql MySQL 3)RDBMS(Relational Database Management System) 关系型数据库管理系统是数据库软件中用来操作和管理数据库的部分,用于建立.使用和维护数据库,简称rdbms.它对数据进行统一的管理和控制,以保证数据的安全性好完整性. 4)SQL(Structured Query La