描述:
对数据同步工具采集的表数据按条件汇总。
语法:
cdc_collect(cdcPath; tables, startTime[,endTime])
备注:
外部库函数,外部库的使用请参考《外部库使用指南》。
返回的嵌套序表由Name、Delete和Insert组成:Name字段返回“数据库名.数据表名”;Delete字段返回对数据表的删除操作,Insert字段返回对数据表的插入操作,其中修改操作被分解成“先删除、后插入”,即在Delete中记录修改前的数据,Insert中记录修改后的数据。
相同主键的操作记录,Delete只返回一条,Insert返回新增或修改的最终状态。
参数:
cdcPath |
dirout文件夹的路径,此文件夹下存放数据同步工具采集数据生成的复组表。 |
tables |
需要汇总的表名,缺省为所有的表,不区分大小写。表名可以是字符串,表名之间用空格分隔,也可以用序表方式表示多表。 |
startTime/endTime |
采集的起始时间/结束时间,格式为yyyy-MM-dd HH:mm:dd或yyyy-MM-dd;startTime不能省略,endTime缺省表示当前时间;两参数都存在时,按照左闭右开的区间取值。 |
返回值:
序表
示例:
|
A |
|
1 |
=cdc_collect("D:/tmp/dirout";"mytest.test1","2023-06-01 08:00:00") |
采集指定起始时间至当前时间的表test1数据。 |
2 |
=cdc_collect("D:/tmp/dirout";,"2023-06-01 08:30:00") |
采集指定起始时间至当前时间的所有表数据。 |
3 |
=cdc_collect("D:/tmp/dirout";["mytest.test2","mytest.test3"],"2023-06-01 08:00:00","2023-06-01 18:00:00") |
汇总指定时间段的多个表数据。 |
4 |
=cdc_collect("D:/tmp/dirout";"mytest.test2 mytest.test3","2023-06-01 08:00:00","2023-06-01 18:00:00") |
同上。 |
5 |
=file("F://tmp/emp1.ctx").open() |
打开组表emp1.ctx,组表内容如下: |
6 |
=A5.update(:A4.Delete) |
将对表test1的数据删除同步至组表emp1.ctx中,A4.Delete内容如下: |
7 |
=A5.update(A4.Insert) |
将对表test1的数据新增同步至组表emp1.ctx中,A4.Insert内容如下: |
8 |
=A5.cursor().fetch() |
此时查看组表emp1.ctx中的数据,数据同步成功: |