ALTER SERVER 语句

ALTER SERVER 语句用于修改数据源的定义或配置。

此语句可用于执行以下更改:
  • 修改特定数据源的定义或数据源类别的定义。
  • 对特定数据源的配置或数据源类别的配置进行更改 - 这些更改将在与联合数据库的多个连接中持续存在。
在此语句中,单词 SERVER 和以 server- 开头的参数名仅指联合系统中的数据源。 它们不引用此类系统中的联合服务器,也不引用 DRDA 应用程序服务器。

调用

此语句可以嵌入在应用程序中,也可通过动态 SQL 语句来发出。 它是一个可执行语句,仅当 DYNAMICRULES 运行行为对于程序包有效时才能动态编译 (SQLSTATE 42509)。

授权

此语句的授权标识所拥有的特权必须包括 DBADM 权限。

语法

Read syntax diagramSkip visual syntax diagramALTER SERVER server-nameVERSIONserver-versionTYPEserver-typeVERSIONserver-versionWRAPPERwrapper-name OPTIONS (,ADDSETserver-option-namestring-constantDROPserver-option-name)
server-version
Read syntax diagramSkip visual syntax diagramversion.release.modversion-string-constant

描述

server-name
标识要应用所请求更改的数据源的联合服务器名称。 此数据源必须是目录中描述的数据源。
版本
server-name 之后,VERSION 及其参数指定 server-name 表示的数据源的新版本。
version
指定版本号。 该值必须是整数。
release
指定由 version 表示的版本的发行版号。 该值必须是整数。
mod
指定由 release 表示的发行版的修订版号。 该值必须是整数。
version-string-constant
指定版本的完整名称。 version-string-constant 可以是单个值(例如“8i”),也可以是 versionrelease 和(如果适用)mod 的并置值(例如“8.0.3”)。
TYPE server-type
指定要应用所请求更改的数据源的类型。
版本
server-type 之后,VERSION 及其参数指定要启用、重置或删除服务器选项的数据源的版本。
WRAPPER wrapper-name
指定联合服务器用来与由 server-typeserver-version 表示的类型和版本的数据源进行交互的包装器的名称。 必须在目录中列出该包装器。
选项
指示要为 server-name 表示的数据源或 server-type 及其关联参数表示的数据源类别启用、重置或删除的服务器选项。
ADD
启用新的服务器选项。
SET
更改服务器选项的设置。
server-option-name
要添加或重置的服务器选项。 您可以指定哪些选项取决于要为其创建包装器的对象的数据源。 有关数据源以及适用于每个数据源的服务器选项的列表,请参阅 数据源选项
string-constant
服务器选项设置(即,用单引号括起的字符串常量)。
DROP server-option-name
删除服务器选项。

注意

  • 不能在同一个 ALTER SERVER 语句中多次指定服务器选项 (SQLSTATE 42853)。 当启用、重置或删除某个服务器选项时,正在使用的任何其他服务器选项都不会受到影响。
  • 在以下任一情况下,无法处理给定工作单元 (UOW) 中的 ALTER SERVER 语句 (SQLSTATE 55007):
    • 该语句引用单个数据源,并且 UOW 已包含以下项之一:
      • 引用此数据源中表或视图的昵称的 SELECT 语句
      • 此数据源中表或视图的昵称上的打开游标
      • 针对此数据源中表或视图的昵称发出的 INSERT、DELETE 或 UPDATE 语句
    • 该语句引用了某种数据源类别(例如,特定类型和版本的所有数据源),并且 UOW 已包含以下项之一:
      • 引用这些数据源中表或视图的昵称的 SELECT 语句
      • 这些数据源中表或视图的昵称上的打开游标
      • 针对这些数据源中表或视图的昵称发出的 INSERT、DELETE 或 UPDATE 语句
  • 如果针对某种数据源类型将服务器选项设置为一个值,并针对该类型的实例将服务器选项设置为另一个值,那么第二个值将覆盖该实例的第一个值。 例如,假设将 PLAN_HINTS 设置为“Y”(对于服务器类型 ORACLE)或“N”(对于名为 DELPHI 的 Oracle 数据源)。 此配置导致在除 DELPHI 之外的所有 Oracle 数据源中启用计划提示。
  • 对于由先前的 alter add server option 操作启用的数据源类别,只能使用 alter set server option 或 alter drop server option (SQLSTATE 42704) 。
  • 更改服务器版本时,不会进行验证以确保指定的服务器版本与远程服务器版本匹配。 当您访问属于数据库服务器定义的昵称时,指定不正确的服务器版本可能会导致 SQL 错误。 当指定的服务器版本晚于远程服务器版本时,就很可能发生此情况。 在这种情况下,当访问属于服务器定义的昵称时,数据库服务器可能会发送远程服务器无法识别的 SQL。
  • 不能同时删除服务器选项 HOST 和 NODE (SQLSTATE 428EG)。
  • HOST 和 NODE 关键字都包含在服务器选项列表中,即使 NODE 指定了无法识别的数据源,也会使用 NODE。
  • PORT 选项不是必需的。 当删除 PORT 时,ODBC 包装器会根据远程数据源使用缺省 PORT 号。 将在 CREATE SERVER 中列出缺省 PORT 号。

示例

  • 示例 1:确保在将授权标识发送到 Oracle 8.0.3 数据源时,这些标识的大小写会保持不变。 此外,假设本地联合服务器 CPU 的速度是数据源 CPU 的两倍。 向优化器通知这些统计信息。
       ALTER SERVER
         TYPE ORACLE
         VERSION 8.0.3
         OPTIONS
            (ADD FOLD_ID 'N',
            SET CPU_RATIO '2.0')
  • 示例 2:指示名为 DCTM_SVR_ASIA 的 Documentum 数据源已更改为 V4。
       ALTER SERVER DCTM_SVR_ASIA
         VERSION 4      
  • 示例 3:删除 NODE 选项,并添加新的 HOST 选项。 ODBC 驱动程序使用无 DSN 方式(而不是 DSN 连接)来访问 Hive 服务器。
       ALTER SERVER HIVE
    OPTIONS (add HOST ‘9.123.111.214’, DROP NODE)