您可跨数据库和跨数据库服务器实例运行下列 SQL 语句:
• CREATE DATABASE
• CREATE SYNONYM
• CREATE VIEW
• DATABASE
• DELETE
• DROP DATABASE
• EXECUTE FUNCTION
• EXECUTE PROCEDURE
• INFO
• INSERT
• LOAD
• LOCK TABLE
• MERGE
• SELECT
• UNLOAD
• UNLOCK TABLE
• UPDATE
限制:
要跨数据库或跨数据库服务器成功地运行这些 SQL 语句中的每一个,本地数据库与外部 数据库必须都具有相同的日志记录模式。例如,如果作为 MODE ANSI 创建了您从其发出分布式查询的本地数据库,该查询访问的其他数据库都不可为无日志记录的,且不可使用 显式的事务。
在跨数据库操作中返回数据类型
使用 SQL 语句或 UDR 来访问本地GBASE南大通用GBase 8s 数据库服务器实例的其他数据库的分布式 操作可访问这些数据类型的值:
• 非 opaque 的任何内建的原子数据类型
• BLOB、BOOLEAN、BSON、CLOB、JSON 和 LVARCHAR opaque 类型
• 基于内建的类型的 DISTINCT 类型 • 可强制转型为内建的类型的用户定义的数据类型(UDT)。
必须将上述 DISTINCT 或 UDT 值都显式地强制转型为内建的数据类型,且必须在所有参 与的数据库中定义所有 DISTINCT 类型、UDT 和强制转型。
它们还可访问可强制转型为内建的类型的 UDT,假设显式地将 DISTINCT 或 UDT 值强 制转型为内建的类型,以及在所有参与的数据库中定义的所有 DISTINCT 类型、UDT 和 强制转型。
如果在所有参与的数据库中定义 UDR,则 SPL、C 和 Java 语言 UDR 可返回这些数据 类型作为参数或作为返回值。必须跨所有参与的 GBase 8s 实例,来复制在这些数据类型之 上定义的任何隐式的或显式的强制转型。DISTINCT 数据类型必须具有与在分布式查询中 参与的所有数据库中定义的完全相同的数据类型层级结构。
跨数据库的分布式查询或其他访问本地 GBASE南大通用GBase 8s 数据库服务器的另一数据库的跨数据库 DML 操作将会失败并报错,如果它引用包括任何下列数据类型的列的表、视图或同义词的 话:
• IMPEX
• IMPEXBIN
• LOLIST
• SENDRECV
• 以上列出的任何内建的 opaque 数据类型的 DISTINCT
• 复合的类型,包括 COLLECTION、LIST、MULTISET 或 SET,以及命名了的或 未命名的 ROW 类型。
对于以这些内建的 opaque 或复合的数据类型访问表的跨数据库分布式操作的这一限制, 也适用于访问两个或多个数据库服务器实例的数据库的操作,这在下一部分描述。 在跨服务器操作中的返回数据类型
跨两个或多个 GBase 8s 实例的分布式查询(或任何其他分布式 DML 操作或函数调用)不 可返回复合的或大对象数据类型,也不可返回大部分 UDT 或 opaque 数据类型。跨服务 器分布式查询、DML 操作和函数调用仅可返回下列数据类型:
• 任何非 opaque 的内建数据类型
• BOOLEAN
• BSON
• JSON
• LVARCHAR
• 非 opaque 的内建类型的 DISTINCT
• BOOLEAN 或 LVARCHAR 的 DISTINCT
• BSON 或 JSON 的 DISTINCT
• 在此列表中出现在上面的任何 DISTINCT 类型的 DISTINCT。 同样的跨数据库要求也适用于跨两个或多个 GBase 8s 数据库服务器实例的数据库的分布 式 SQL 操作,即,在每个参与的数据库中,所有 UDR、强制转型和 DISTINCT 数据类 型都要有相同的定义。
访问另一GBASE南大通用GBase 8s 实例的数据库的跨服务器 DML 操作将会失败并报错。然而,如果它引 用包括任意下列数据类型的表对象:
• BLOB
• CLIENTBINVAL
• CLOB
• IFX_LO_SPEC
• IFX_LO_STAT
• INDEXKEYARRAY
• POINTER
• RTNPARAMTYPES
• SELFUNCARGS
• STAT
• 用户定义的 OPAQUE 类型
• 罗列在上面的任何内建的 opaque 数据类型的 DISTINCT
• 复合的类型,包括 COLLECTION、LIST、MULTISET 或 SET,以及命名了的或 未命名的 ROW 类型。