Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1997523
  • 博文数量: 1647
  • 博客积分: 80000
  • 博客等级: 元帅
  • 技术积分: 9980
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-13 15:15
文章分类

全部博文(1647)

文章存档

2011年(1)

2008年(1646)

我的朋友

分类:

2008-10-28 18:09:33

   当一个应用软件要分发给顾客时——或者甚至是同一个公司的多个地点时——就会出现版本问题。如果所设计的程序要用到某个特定版本的具体特性时,那么当在早期的版本中运行时,就会失败。

  检查版本信息的一种方法就是选择动态性能查看表V$VERSION。它输出一组标题似的文字,指明的版本和各种组件的发布级别。但是,要解析这个输出是非常繁琐的。

  当Oracle 9i Release 2被引入之后,它包括了一个被称作DBMS_DB_VERSION的新的PL/SQL数据包,使得版本的检查变得更简单了。这个数据包中没有程序或函数,仅有一系列您可以查询,从而确定当前运行版本有用的常数。

  在这个数据包中,最简单的两个常数是VERSION和RELEASE。以10gR2为例,在SQL*Plus中执行以下命令,将会返回数字10:

SET SERVEROUT ON
EXEC DBMS_OUTPUT.PUT_LINE (DBMS_DB_VERSION.VERSION);

  其他的常数都是逻辑值,它们表明了当前运行版本是否比某个具体的截止版本老,或者是相同的。只需要简单地一下适当的逻辑值,而无需通过提取版本、发布信息和编写逻辑来检查:

BEGIN
IF (DBMS_DB_VERSION.VER_LE_9_2) THEN
DBMS_OUTPUT.PUT_LINE ('Oracle 10g is required.');
ELSE
DBMS_OUTPUT.PUT_LINE ('Version check successful.');
END IF;
END;
/

  引入这个特性主要是为了在PL/SQL中支持有条件的编辑。以这些常数为基础,您可以为您的PL/SQL代码指定不同的数据类型或者避免使用未实现的特性。

  Bob Watkins (OCP, MCDBA, MCSE, MCT) is a computer professional with 25 years of experience as a technical trainer, consultant, and database administrator.

【责编:Peng】

--------------------next---------------------

阅读(185) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~