ALTER SERVER 语句
ALTER SERVER 语句用于修改数据源的定义或配置。
此语句可用于执行以下更改:
- 修改特定数据源的定义或数据源类别的定义。
- 对特定数据源的配置或数据源类别的配置进行更改 - 这些更改将在与联合数据库的多个连接中持续存在。
调用
此语句可以嵌入在应用程序中,也可通过动态 SQL 语句来发出。 它是一个可执行语句,仅当 DYNAMICRULES 运行行为对于程序包有效时才能动态编译 (SQLSTATE 42509)。
授权
此语句的授权标识所拥有的特权必须包括 DBADM 权限。
语法
描述
- server-name
- 标识要应用所请求更改的数据源的联合服务器名称。 此数据源必须是目录中描述的数据源。
- 版本
- 在 server-name 之后,VERSION 及其参数指定 server-name 表示的数据源的新版本。
- version
- 指定版本号。 该值必须是整数。 release
- 指定由 version 表示的版本的发行版号。 该值必须是整数。 mod
- 指定由 release 表示的发行版的修订版号。 该值必须是整数。 version-string-constant
- 指定版本的完整名称。 version-string-constant 可以是单个值(例如“8i”),也可以是 version、release 和(如果适用)mod 的并置值(例如“8.0.3”)。
- TYPE server-type
- 指定要应用所请求更改的数据源的类型。
- 版本
- 在 server-type 之后,VERSION 及其参数指定要启用、重置或删除服务器选项的数据源的版本。
- WRAPPER wrapper-name
- 指定联合服务器用来与由 server-type 和 server-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 语句
- 该语句引用单个数据源,并且 UOW 已包含以下项之一:
- 如果针对某种数据源类型将服务器选项设置为一个值,并针对该类型的实例将服务器选项设置为另一个值,那么第二个值将覆盖该实例的第一个值。 例如,假设将 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)
