如果源表或视图(或任何在源查询中引用的表对象)指定在 GBase 8s 实例的数据库中的表对象,
而不是管理目标表的数据库的本地实例,则 MERGE 语句仅可访问远程数据库中的下列数据类型
的列:
非 opaque 的内建的数据类型
BOOLEAN
LVARCHAR
非 opaque 的内建的数据类型的 DISTINCT
BOOLEAN 的 DISTINCT
LVARCHAR 的 DISTINCT
出现在此列表中的任何 DISTINCT 数据类型的 DISTINCT。
跨服务器的分布式 MERGE 操作可支持这些 DISTINCT 类型,仅当将 DISTINCT 类型显式地强
制转型为内建的类型,且在每一参与的数据库中以完全相同的方式定义所有 DISTINCT 类型、其
数据类型层级及其强制转型。要获取关于 GBase 8s 在跨服务器 DML 操作中支持的数据类型的附
加信息,请参阅 跨服务器事务中的数据类型。
MERGE 不可访问另一 GBase 8s 实例的数据库,除非两个数据库实例都支持 TCP/IP 或 IPCSTR
连接,这定义在它们的 DBSERVERNAME 或 DBSERVERALIASES 配置参数中,以及在
sqlhosts 文件或 SQLHOSTS 注册子键中。此连接类型的要求适用于 GBase 8s 实例之间的任何通
信,即使两个数据库服务器位于同一台计算机上。
然而,访问在本地 GBase 8s 实例的其他数据库中的表对象的 MERGE 操作,可访问前述列表中任
何跨服务器的数据类型以及这些附加的数据类型:
大部分内建的 opaque 数据类型,如 跨数据库事务中的数据类型 中所列
同一内建的 opaque 类型的 DISTINCT
在前面两行中的任何数据类型的 DISTINCT
显式地强制转型为内建的数据类型的 opaque 用户定义的数据类型(UDT)。
MERGE 语句还支持通用客户端 API 中的 “分布式关系数据库架构”™(DRDA®)协议。对于
MERGE 可从远程数据库通过 DRDA 协议返回的 GBase 8s 数据类型,要查看 DRDA 所支持
(以及不支持)的 GBase 8s 数据类型的列表