网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.教你轻松掌握修改Oracle数据库表.
.关于oracle 10G企业网格计算的介.
.Oracle 分布式数据库远程数据访问.
.如何安装使用Oracle10g.
.Oracle 锁简单介绍.
.Oracle中使用的若干技术经典总结.
.一起学习在linux下使用汇编语言(.
.ORACLE数据库常见问题诊断方法 -.
.在Oracle中发布和调用Java funct.
.Decode 函数的用法.
.Materialize view 更新资料的程序.
.如何在squid中通过URL进行访问控.
.ORACLE问题,每天10问(八).
.在DB2中如何實現Oracle的相關功能.
.Oracle数据操作和控制语言问题详.
.AIX系统下的小型计算机系统接口性.
.一个将数据分页的存储过程.
.ORACLE没有自动增长的数据类型.
.ORACLE 内核参数意义.
.Oracle进程导致CPU 100%的具体解.

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

发表日期:2008-2-9



  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;
上一篇:自己整理的OCI文档,抛砖引玉 人气:753
下一篇:关于库存余额、财务收支余额的计算 人气:721
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐