返回首页

gbase数据、南大通用产品文档:GBase8sifx_lo_to_buffer() 函数

更新日期:2024年09月11日

ifx_lo_to_buffer() 函数将指定的字节数从智能大对象复制至用户定义的缓冲区内。

语法
mint ifx_lo_to_buffer(LO_ptr, size, buf_ptr)
ifx_lo_t *LO_ptr;

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 805 -

mint size;
char **buf_ptr;

mint error;
LO_ptr
您想要从其复制数据的智能大对象的 LO-pointer 结构。
size
标识要从智能大对象复制的字节数的 mint。
buf_ptr
指向您想要将数据复制到的用户定义的缓冲区的加倍间接指针。
error
包含保存 ifx_lo_to_buffer() 设置的错误代码的 mint 的地址。

用法

ifx_lo_to_buffer() 函数从 LO_ptr 参数标识的智能大对象复制字节,
最多为 size 参数
指定的大小。来自智能大对象的读操作起始于零字节偏移量。如果该智能大对象小于 size
值,则 ifx_lo_to_buffer() 仅复制智能大对象中的字节数。如果该智能大对象包含多于 size
的字节,则 ifx_lo_to_buffer() 函数最多仅复制 size 字节至用户定义的缓冲区内。

当 buf_ptr 为 NULL 时,ifx_lo_to_buffer() 为用户定义的缓冲区分配内存。否则,
该函数假定您已分配了 buf_ptr 标识的内存。

返回代码
0
buf_ptr 标识的从智能大对象复制到用户定义的缓冲区的字节数。
-1
函数不成功。

取值:[0|1]
默认值:0
说明:重复消息检查
此参数用来设定consumer 是否比对POS(防止重复消费),默认是关闭,即,检
查重复消息。除非在特殊场景下,否则不建议打开。
如果用户的consumer 做的都是insert 操作,不需要保证顺序,需要单独对某个
consumer 关闭pos 检查。配置方法是手动修改gclusterdb.kafka_consumers:
update gclusterdb.kafka_consumers set common_options=’
gcluster_kafka_ignore_pos_field = 1’
where `name`=’consumer_1’;
然后重启consumer_1。
修改方式:
可使用set 语句修改值也可在配置文件中修改值。
适用于session、
global
范围均可。

示例
示例中所用的表及数据:
CREATE TABLE "test_3" (
"column_1" int(11) DEFAULT NULL,
"column_2" varchar(10) DEFAULT NULL,
"column_3" varchar(20)
DEFAULT NULL);

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
1242
gbase> select * from test_3;
+----------+----------+----------+
| column_1 | column_2 | column_3 |
+----------+----------+----------+
|
59432 | gg
| laqpqpd
|
|
43452 | sisoekso | mozoa,a
|
|
3890 | lqps,rpd | gg
|
+----------+----------+----------+
3 rows in set (Elapsed: 00:00:00.01)
导出SQL 语句:
gbase> select * from test_3 into outfile '/home/gbase/test.txt'
character set
gbk;
Query OK, 3 rows affected (Elapsed: 00:00:00.29)
查看导出文件:
$cat test.txt:
43452
sisoekso
mozoa,a
3890
lqps,rpd
gg
59432
gg
laqpqpd