在跨服务器查询中指定数据库对象

要在远程数据库服务器的数据库中指定一个对象,必须除数据库对象名以外,还使用指定数据库、数据库服务器和所有者(如果外部数据库是符合 ANSI 的)的 fully-qualified identifier 。例如, hr_db@remoteoffice:hrmanager.employees 是一个标准的表名称。

这里,数据库是 hr_db,数据库服务器是 remoteoffice,表所有者是 hrmanager,表名是 employees。在 database database server 限定符之间需要不带空格的 at ( @ )分隔符。跨服务器查询只能访问不是不透明数据类型的内置数据类型。在跨服务器操作中不能访问 UDT,也不能访问不透明、复杂或其它扩展数据类型。(有关 GBase 8s 在跨服务器操作中支持的 DISTINCT 和内置的 OPAQUE 数据类型的列表,请参阅跨服务器事务中的数据类型。)

GBase 8s 中,如果 UDR 在远程数据库服务器上存在,则必须为 UDR 指定一个标准标识符。与跨服务器 DML 操作相似,远程 UDR 的参量、参数和返回值被限制只能针对内置的非不透明数据类型。(有关 GBase 8s 在跨服务器操作中支持的数据类型的列表,请参阅跨数据库事务中的数据类型。)

只能在下列语句中引用远程数据库。有关这些跨本地服务器的数据库或跨数据库服务器的语句中的支持的信息,请参阅 GBase 8s SQL 教程指南

如果数据库服务器的名称是分隔标识符,或者如果它包含大写字母,则该数据库服务器不能参与分布式 DML 操作。要避免此限制,在声明数据库服务器的名称或别名时,请仅使用不包含大写字母的未限制名称。