icursor()

阅读(443) 标签: 索引, 附表, 集群表,

本章介绍icursor()函数的多种用法。

T.icursor()

描述:

通过索引与条件过滤实表

语法:

T.icursor(C,…;w,I)

备注:

用索引I条件w过滤实表TI省略时自动找索引。结果返回单路游标。

参数:

T

实表

C

表中的列名,缺省时读取全部列

w

过滤条件,语法支持>>=<<===contain,过滤条件中用到的T表字段必须跟索引中的索引字段一致

I

索引名称,可省略

选项:

@s

确保返回结果集对I有序且可支持大结果集,支持复组表

@u

从左到右处理多&&条件,缺省会根据条件优化过滤次序

@m(…;n)

返回多路游标,n为并行数,缺省使用系统配置的并行数

返回值:

单路游标

示例:

 

A

 

1

=file("D:\\emp1.ctx")

 

2

=A1.create(#EID,NAME,DEPT,GENER;EID)

创建以EID为分段键的组表

3

=demo.cursor("select EID,NAME,DEPT,GENDER from employee where EID< 100")

 

4

=A2.append(A3)

 

5

=A4.index(test_index,GENDER=="F";DEPT;EID)

创建索引test_index

6

=A4.icursor(;DEPT=="HR",test_index)

使用索引test_index查询出DEPTHR的所有列的数据,结果返回游标

7

=A5.fetch()

获取游标中的数据

8

=A4.icursor@u(;like(DEPT,"*ale*")&&EID>=50,test_index).fetch()

从左到右处理多&&条件,使用索引test_index查询含有“ale”的DEPT,并且EID大于等于50的数据

9

=A1.create(#EID,NAME,DEPT,GENDER;EID;EID%2+1)

创建以EID为分段键的复组表

10

=demo.cursor("select EID,NAME,DEPT,GENDER from employee")

 

11

=A9.append(A10)

 

12

=A11.index(test_index1,GENDER=="M";DEPT;EID)

创建索引test_index1

13

=A11.icursor@s(;DEPT=="HR",test_index1).fetch()

使用索引test_index1查询DEPTHR的数据,并且返回的结果集对test_index1有序

14

=A11.icursor@m(;DEPT=="HR",test_index1;2)

返回并行数为3的多路游标

T.icursor()

描述:

通过索引与条件来过滤集群表

语法:

T.icursor(C,…;w,I)

备注:

用索引I条件w过滤集群TI省略时自动找索引。

参数:

T

集群表

C

集群表中的列名,缺省时读取全部列

w

过滤条件,语法支持>>=<<===contain,过滤条件中用到的T表字段必须跟索引中的索引字段一致

I

索引名称,可省略

返回值:

集群游标

示例:

 

A

 

1

=file("emp1.ctx":[2],"192.168.0.101:8281")

打开集群文件

2

=A1.open()

打开集群表

3

=A2.attach(table1)

取出集群表table1

4

=A3.index(test_index2,GENDER=="F";DEPT;)

创建索引文件test_index2

5

=A3.icursor(;DEPT=="HR",test_index2)

使用索引test_index2查询出集群表A3DEPTHR所有列的数据,结果返回集群游标

6

=A5.fetch()

7

=A2.index(test_index1,EID<16;NAME;)

创建索引文件test_index1

8

=A2.icursor(EID,SURNAME;NAME=="Smith",test_index1)

使用索引test_index1查询出集群表A2NAMESmithEID,SURNAME列的数据,结果返回集群游标

9

=A8.fetch()