`

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

阅读更多
1 前言
  在程序实现过程中,经常用遇到一些全局变量或常数。在程序开发过程中,往往会将该变量或常数存储于临时表或前台程序的全局变量中,由此带来运行效率降低<频繁读取临时表>或安全隐患<存于前台程序变量,可跟踪内存变量获得>。
  本文主要论述将全局变量或常数存取程序包的优点和实现方法。
  
2 优点
  2.1 执行效率比存储于临时表高,不需要频率存取临时表
  2.2 将全局变量藏于最后防线<数据库>,安全性较高
  2.3 在视图中可以调用程序包的变量,实现动态视图
  
3 实现
  3.1 实现方法概述
  Oracle数据库程序包中的变量,在本程序包中可以直接引用,但是在程序包之外,则不可以直接引用。对程序包变量的存取,可以为每个变量配套相应的存储过程<用于存储数据>和函数<用于读取数据>来实现。
  
  3.2 实例
  --定义程序包
  create or replace package PKG_System_Constant is
  
    C_SystemTitle nVarChar2(100):='测试全局程序变量'; --定义常数
    --获取常数<系统标题>
    Function FN_GetSystemTitle
     Return nVarChar2;
  
    G_CurrentDate Date:=SysDate; --定义全局变量
    --获取全局变量<当前日期>
    Function FN_GetCurrentDate
     Return Date;
    --设置全局变量<当前日期>
    Procedure SP_SetCurrentDate
     (P_CurrentDate In Date);
  End PKG_System_Constant;
  /
  create or replace package body PKG_System_Constant is
    --获取常数<系统标题>
    Function FN_GetSystemTitle
     Return nVarChar2
     Is
     Begin
       Return C_SystemTitle;
     End FN_GetSystemTitle;
  
    --获取全局变量<当前日期>
    Function FN_GetCurrentDate
     Return Date
     Is
     Begin
       Return G_CurrentDate;
     End FN_GetCurrentDate;
    --设置全局变量<当前日期>
    Procedure SP_SetCurrentDate
     (P_CurrentDate In Date)
     Is
     Begin
       G_CurrentDate:=P_CurrentDate;
     End SP_SetCurrentDate;
  End PKG_System_Constant;
  /
    
  3.3 测试
  --测试读取常数
  Select PKG_System_Constant.FN_GetSystemTitle From Dual;   
  --测试设置全局变量
  Declare 
  Begin
    PKG_System_Constant.SP_SetCurrentDate(To_Date('2001.01.01','yyyy.mm.dd'));
  End;
  /
  --测试读取全局变量
  Select PKG_System_Constant.FN_GetCurrentDate From Dual;
====================
听说:package的全局变量只针对一个会话中有用,是不是这样???待验证。
分享到:
评论

相关推荐

    JSp+oracle数据库应用系统开发与实例

    3. **JSP内置对象**:如request、response、session、application等,它们在处理用户请求、响应、管理会话和全局应用程序变量等方面的作用。 4. **Servlet与JSP的关系**:阐述了JSP与Servlet之间的关系,以及如何...

    ORACLE数据库安装配置说明

    Oracle数据库是全球广泛使用的大型关系型数据库管理系统,其在企业级应用中占据着重要的地位。本文将详细阐述Oracle数据库的安装配置过程,以及如何利用PL/SQL Developer这一强大的管理工具进行数据库管理和查询。 ...

    unix和linux下的oracle数据库管理

    在IT领域,Oracle数据库系统是广泛应用于企业级数据存储和管理的重要工具,尤其在Unix和Linux操作系统上,其稳定性和性能表现突出。本主题将深入探讨"Unix和Linux下的Oracle数据库管理",涵盖一系列关键知识点。 一...

    基于Linux系统的的OCI连接Oracle数据库程序

    在IT行业中,Linux系统是广泛应用于服务器操作系统的平台,而Oracle数据库则是企业级数据库管理系统的重要选择。...通过深入学习和实践,你将能够利用OCI接口实现高效、可靠的Oracle数据库应用程序。

    Oracle数据库系统应用实例集锦与编程技巧

    通过学习SQL的SELECT、INSERT、UPDATE、DELETE等基本语句,以及PL/SQL的块结构、变量、条件判断、循环等,可以编写出高效、可维护的数据库程序。 三、数据库设计与优化 实例集锦中可能包含数据库模式设计的案例,如...

    Oracle数据库管理员技术指南

    2.3 DBMS_SPACE 程序包 2.3.1 使用 DBMS_SPACE.UNUSED _SPACE 2.3.2 使用 DBMS_SPACE.FREE _BLOCK 2.4 管理锁争用 2.4.1 怎样查找产生锁的 SQL 语句 2.4.2 怎样释放锁 2.4.3 怎样删除用户会话 2.4.4 怎样从...

    Oracle子程序和程序包

    3. 如何在程序包中定义全局变量,以及如何在子程序之间共享这些变量。 4. 创建程序包规范和体的示例,以及如何在包体中实现私有过程和函数。 5. 调用子程序和函数的方法,包括在SQL语句中直接调用函数和在PL/SQL块中...

    Oracle中的package对象

    Oracle中的Package对象是一种独特的特性,它体现了Oracle数据库的面向对象编程理念。Package允许开发者像创建对象一样...理解并熟练运用package的全局变量特性,可以显著提高Oracle数据库应用程序的设计质量和效率。

    20190916_補充-使用Visual Studio联机Oracle数据库.pdf

    首先,要通过Visual Studio 2017联机Oracle数据库,需要先安装适合的Oracle ODBC驱动程序。Oracle官方提供了专门的ODAC(Oracle Developer Tools for Visual Studio)工具包,这个工具包包含了ODBC驱动程序,可以在...

    navicat链接Oracle数据库工具

    - 实例(Instance):Oracle数据库运行时的内存结构,包括系统全局区(SGA)和程序全局区(PGA)。 - 会话(Session):用户与数据库之间的交互过程,每个连接就是一个会话。 - 视图(View):虚拟表,基于一个或多...

    构建最高可用Oracle数据库系统 Oracle 11gR2 RAC管理、维护与性能优化

    14.3.5安全应用程序角色 14.3.6多规则认证例子 14.4本章小结 第15章 RAC稳定性与性能优化 15.1服务器硬件 15.1.1 Firmware固件升级 15.1.2硬件设备兼容性 15.1.3 FC HBA卡冗余 15.1.4 Infiniband技术 ...

    oracle数据库资料

    Oracle数据库是全球广泛使用的大型关系型数据库管理系统,它在企业级数据存储、管理和处理方面具有卓越性能。"Oracle数据库资料"这个压缩包很可能是为学习和掌握Oracle数据库提供的一系列教程和参考文档。下面,我们...

    Oracle数据库教程第02章.pptx

    环境变量对于数据库的正常运行至关重要,因为它们影响着Oracle数据库的配置和程序的运行方式。 环境变量的设置是数据库安装过程中的一项重要任务。环境变量主要包括NLS_LANG、ORACLE_BASE、ORACLE_HOME、ORACLE_SID...

    Informix迁移至Oracle数据库的研究.pdf

    Informix的全局变量通常在程序块的开始处赋值,而Oracle则在主程序块内。异常处理在Oracle中应放在业务逻辑之后,以确保全面捕获异常。 - Informix的批处理程序处理条件编译和宏定义的方式与Oracle不同,需要调整以...

    Oracle数据库经典学习教程

    - Oracle提供了Oracle Managed Data Access (ODP.NET)等驱动程序,支持.NET应用连接Oracle数据库。 - 通过创建Connection对象并设置ConnectionString来建立连接。 - **抽象工厂中加入Oracle** - 抽象工厂模式...

    oracle数据库性能优化

    Oracle数据库是全球广泛使用的数据库管理系统,尤其在企业级应用中占据重要地位。性能优化旨在最大化数据库效率,减少响应时间,提高吞吐量,以及确保资源的有效利用。下面将详细讨论一些与"Oracle数据库性能优化...

Global site tag (gtag.js) - Google Analytics