卸载智能大对象

数据库服务器为每一列将智能大对象(从BLOB 或 CLOB 列)卸载到单独的操作系统文件内,与 UNLOAD TO 文件在客户端计算机上的同一个目录中。 将同一列中所有智能 blob 存储在单个文件中。filename 有下列之一的格式:

在前面的格式中,符号(#)表示该文件中第一个智能大对象的唯一十六进制智能大对象的位数。智能大对象标识符的数字的最大数目为 17。然而,大多数智能大对象可能有更少位数的标识符。

当数据库服务器卸载第一个智能大对象时,它以智能大对象的十六进制标识符来创建适当的 BLOB 或 CLOB 客户端文件。如果在同一列中出现附加的智能大对象值,则数据库服务器将它们的值写到同一文件,并对于该文件中的每一 BLOB 或 CLOB 值,在 UNLOAD TO 文件(*.unl)中罗列 sbspace、chunk 和页编号,以及智能大对象标识符。

下列示例展示来自同一列的两个智能大对象值的 UNLOAD TO 文件条目:
Object # 1
        Space Chunk Page = [5,6,3] Object ID = 1192071051
        
        Object #2
        Space Chunk Page = [5,6,4] Object ID = 1192071050
        
        both rows unloaded
在 UNLOAD TO 文件中,BLOB 或 CLOB 列值以此格式出现:
start_off,length,client_path
在此, start_off 是在客户端文件内智能大对象的开始偏移量(以十六机制格式),length 是 BLOB 或 CLOB 值的长度(以十六进制),client_path 是客户端文件的 pathname。在这些值之间不可出现空格。 例如,如果 CLOB 值为 512 字节长,且在 /usr/apps/clob9ce7.318 文件中的偏移量为 256,则在 UNLOAD TO 文件中,CLOB 值显示如下:
|100,200,/usr/apps/clob9ce7.318|
如果 BLOB 或 CLOB 列值占据整个客户端文件,则在 UNLOAD TO 文件中,CLOB 或 BLOB 列值显示如下:
client_path
例如,如果 CLOB 值占据整个文件 /usr/apps/clob9ce7.318,则在 UNLOAD TO 文件中,CLOB 值显示如下:
|/usr/apps/clob9ce7.318|

对于支持多字节代码集的语言环境,请确信接收字符数据的任何列的声明的大小(以字节为单位)足够大,可以存储整个数据字符串。对于某些语言环境,这可需要高达数据字符串中逻辑字符数目的 4 倍。

数据库服务器为 CLOB 数据处理任何需要的代码集转换。要获取更多信息,请参阅 GBase 8s GLS 用户指南