跨服务器事务中的数据类型

跨两个或多个 GBase 8s 实例的服务器的分布式查询(或任何其他的分布式 DML 操作或函数调用)不可返回复合的或大对象数据类型,也不可返回大多数用户定义的数据类型(UDT)或 opaque 数据类型。跨服务器分布式查询、DML 操作和函数调用仅可返回下列数据类型: 跨服务器的分布式查询仅可支持 DISTINCT 数据类型,如果显式地将它们强制转型为内建的类型,且在参与该分布式查询的每一数据库中,则用完全相同的方式定义所有 DISTINCT 类型、它们的数据类型层级和它们的强制转型。对于那些使用前面罗列的数据类型作为参数或作为返回的数据类型的查询或其他跨服务器的 UDR 中的 DML 操作,该 UDR 必须在每个参与的数据库中有相同的定义。

存储安全标签对象的内建的 DISTINCT 数据类型 IDSSECURITYLABEL,可由持有足够的安全凭证的用户跨服务器地和跨数据库操作地对受保护的数据进行访问。就像对受保护的数据进行本地操作一样,在数据库服务器已经将保护数据安全的数据的安全标签与发出该查询的用户的安全凭证进行比较之后,访问由安全策略保护的远程表的那些分布式查询可仅返回 IDSLBACRULES 允许的符合条件的行。

要获取更过关于在跨数据库 DML 操作中 GBase 8s 支持的数据类型的附加信息,请参阅 分布式查询中的数据类型。要获取关于在跨服务器操作中有效的 DISTINCT 数据类型的表层级的信息,请参阅 分布式操作中的 DISTINCT 类型

如果跨服务器查询(或任何其他跨服务器 DML 操作)引用包括任何下列数据类型的列的另一 GBase 8s 实例的数据库中的表、视图或同义词,则查询失败并报错。:

跨服务器查询不可访问另一 GBase 8s 实例的数据库,除非两个服务器都在它们的 DBSERVERNAME 或 DSERVERALIASES 配置参数中和在 sqlhosts 信息中定义 TCP/IP 或 IPCSTR 连接。对两个参与的服务器都要支持相同的连接类型(TCP/IP 抑或 IPCSTR)的要求也适用于 GBase 8s 实例之间的任何通信,即使二者位于同一台计算机上。