引言
IBM DB2 Universal Database Linux、UNIX 和 Windows 版(下称 DB2 UDB)提供了两种从命令行界面输入命令的方式。当以交互(Interactive)模式使用 DB2 UDB 命令行处理器(DB2 UDB Command Line Processor,DB2 UDB CLP)时,您不必在 DB2 UDB 命令或 SQL 查询前加上关键字 db2 。如果您不熟悉 DB2 UDB CLP 不同的运行模式,那么请查看 DB2 规划 - DB2 V8.1 Family Fundamentals 认证准备教程,第 1 部分(共 6 部分)。
请看一下 图 1,图中在运行于交互模式下的 DB2 UDB CLP 中输入了 SELECT *... 语句。您知道这个特定表(STAFF)位于哪个数据库或实例吗?您大概不知道吧(虽然对于这个特例,您可以猜测);可是,DB2 UDB 知道!
图 1. 缺省的 CLP 视图不会告诉您连接到了哪个实例
现在看一眼下面 图 2中一模一样的查询。您现在能回答我的问题了吗?注意到有什么不同了吗?
图 2. 对 CLP 进行了定制,以向您显示您所连接的实例和数据库
带修订包 1(Fix Pack 1,FP1)的 DB2 UDB V8.1 提供了很棒的新功能,这项功能可以让您在运行于交互模式时,定制 DB2 UDB CLP 提示符(后文所指的 DB2 UDB CLP 就是运行于交互模式的 DB2 UDB CLP)。
您可以使用这项新的定制功能,把您自己的文本和反映当前实例连接(instance attachment)和/或数据库连接(database connection)的上下文(context)的变量添加到输出显示。本文将向您介绍这项新的定制功能。
定制交互模式下的 DB2 UDB CLP
带 FP1 的 DB2 V8.1 新增了可定制的 DB2 UDB CLP 交互提示符功能。现在 DB2 UDB CLP 提示符可以反映当前实例连接和数据库连接的上下文,还可以显示特定的字符消息。如果没有该项功能,使用交互模式下的 DB2 CLP 会显示硬编码的提示符,如 图 3所示。
图 3. CLP 中的硬编码提示符
在继续下去之前:关于 DB2 UDB 注册表变量的 20 秒课程
您可以使用 DB2 UDB 注册表变量更改环境。这些变量之所以可以被这样设置,是因为它们本质上是动态的,并且可适用于当前运行时环境,而无需包含在系统启动概要文件中。有一些 DB2 UDB 注册表变量只能设置为系统启动的一部分。
DB2 UDB V8.1 提供了 DB2 概要注册表(DB2 Profile Registry)用以控制环境。在以前的发行版中,如果更改了环境级别,就需要重新引导 DB2 UDB。现在有了一些例外,可以通过存储在 DB2 概要注册表中的注册表变量对 DB2 UDB V8.1 环境进行专门控制。
可使用 db2set命令更新 DB2 UDB 注册表变量;这些信息被立即存储到概要注册表中。DB2 概要注册表将这些更新过的信息应用到在进行更改之后启动的 DB2 UDB 服务器实例和应用程序。
也可以使用 set命令给环境级变量赋值,以用于临时会话(以此方式设置的大部分变量会出现在 DB2 UDB 注册表中;但是,有一些不会,如 DB2INSTANCE)。
如果需要永久性设置某个环境变量,那么您应该使用 db2set命令在工作站的启动概要文件内设置它。 set命令设置的环境变量只在命令行会话期间有效,而 db2set命令行则将环境变量永久性地设置在 DB2 概要注册表中。
要查看全部受支持的注册表变量列表,请输入以下命令:
db2set -lr
要更改 DB2 UDB 注册表变量的值,请输入以下命令:
db2set registry_variable_name=new_value
要查看被设置的全部 DB2 UDB 注册表变量列表,请输入以下命令:
db2set -all
此命令的输出类似图 4。
图 4. db2 set -all 命令的输出
请注意环境级变量前面有个 [e] ,而实例变量和全局变量前面分别为 [i] 和 [g] 。