不透明数据类型是完全封装的用户定义的数据类型。对于数据库服务器,不透明数据类型的内部结构是未知的。
除 DISTINCT 类型的用户定义类型 (UDT) 之外,源类型是内置类型的 UDT 为不透明数据类型。
内置数据类型 BLOB、BOOLEAN、CLOB 和 LVARCHAR 是作为不透明数据类型来实现的。您无法在跨服务器的分布式操作中访问这些内置不透明数据类型,但是您可以在相同
GBase 8s 实例的其他数据库中进行访问。
您必须为不透明数据类型的数据库服务器提供以下信息:
- 如何在磁盘上存储数据值的数据结构
- 确定如何在磁盘存储格式与用于数据输入和显示的用户格式之间转换的支持函数
- 确定如何为此数据类型构建、使用和处理索引的辅助访问方法
- 使用数据类型的用户函数
- 用于在数据库中注册不透明类型的系统目录条目
不透明类型的内部结构对数据库服务器不可视,只能通过用户定义的例程存取。不透明类型的定义存储在 sysxtdtypes 系统目录表中。以下 SQL 语句会维护数据库中不透明类型的定义:
- CREATE OPAQUE TYPE 语句在数据库中注册了一个新的不透明类型。
- DROP TYPE 语句从数据库中除去先前定义的不透明类型。
有关更多信息,请参阅 OPAQUE 数据类型一节。另请参阅 GBase 8s 用户定义的例程与数据类型开发者指南。