GBase8s ESQL/C 简单大对象
简单大对象包括TEXT和BYTE类型, TEXT类型可以存储文本数据,BYTE类型存储二进制数据。
如果使用大对象,建议使用智能大对象,而不是简单大对象,下面的表格列出了二者的差异
大对象功能 | 简单大对象 | 智能大对象 |
数据的最大长度 | 2GB | 4TB |
数据访问方式 | 不能随机访问 | 可以随机访问 |
读取大对象 | 数据库服务器读取完整数据,或者不读取任何数据。 | 支持象访问系统文件一样访问智能大对象,可以直接访问智能大对象的某一部分。 |
写入大对象 | 数据库服务器写入完整数据,或者不写入任何数据。 | 数据库服务器可以重新写入大对象的任意部分。 |
数据日志 | 总是写入日志 | 可以选择写入或不写入日志 |
简单大对象编程
GBase8s ESQL/C使用loc_t数据类型支持TEXT和BYTE简单大对象。
提示:不能在INSERT或UPDATE语句中使用常量值更新TEXT或BYTE列的值。
在ESQL/C程序中,使用loc_t结构体更新简单大对象。
loc_t结构体并不保存简单大对象的实际数据,仅保存简单大对象的大小,数据的位置。
数据可以在内存中,或者操作系统的文件中。
声明简单大对象变量
为简单大对象列声明loc_t变量的方法如下:
EXEC SQL include locator;
EXEC SQL BEGIN DECLARE SECTION;
loc_t text_lob;
loc_t byte_lob;
EXEC SQL END DECLARE SECTION;