ifx_cursor()

阅读(2673) 标签: 游标, 列出分片信息,

描述:

以游标的形式列出指定表的分片信息。

语法:

ifx_ cursor(ifxconn, sql; k1:k2)

通过sql语句从第k1k2个分片中查询数据。

ifx_ cursor(ifxconn, table:where, f:alias,...; k1:k2)

以游标的形式列出指定表的分片信息,根据where条件从表table的第k1k2个分片中查询数据,f为表的列名,alias为其别名,where可省略,K1省略时,k2也省略。省略k2时,只查找k1分片。

ifx_ cursor(ifxconn, sql; ifxCursor:f2)

通过sql语句查询数据,跟ifxCursor取同样的分片数据,f2分片字段,若省略则与ifxCursor分片表的分片字段同名。

ifx_cursor(ifxconn, table:where, f:alias,...; ifxCursor:f2)

根据where条件从表table查询数据,f为表的列名,alias为其别名,跟ifxCursor取同样的分片数据,f2分片字段,若省略则与ifxCursor分片表的分片字段同名。

备注:

外部库函数,外部库的使用请参考《外部库使用指南》。

以游标的形式列出指定表的分片信息。

参数:

ifxconn

ifxconn对象。

sql

Sql语句。

table

分片表名。

where

条件,可省略。

f

分片表的列名。

alias

列名f的别名。

k1

分片k1可省略。

k2

分片k2可省略。

ifxCursor

游标对应的分片。

f2

分片字段,可省略。

选项:

@o

对排序不作要求。

@f

要求有序。

@m

多管道选项。

返回值:

游标

示例:

 

A

 

1

=ifx_conn("jdbc:informix-sqli:192.168.0.3:9088/tpch:;DB_LOCALE=en_us.819;CLIENT_LOCALE=en_us.57372;NEWCODESET=GBK,8859-1,819;informixserver=tpch&user=informix&pwd=informix";"frag.txt")

连接informix数据库。

2

=ifx_takefrag(A1)

 

 

3

=ifx_cursor(A1,"select L_ORDERKEY,L_RETURNFLAG,L_LINESTATUS,L_QUANTITY,L_EXTENDEDPRICE,L_DISCOUNT,L_TAX from lineitem";2:3)

通过sql语句从第2到第3个分片中查询数据。

 

 

 

 

 

4

=A3.fetch(10000)

 

 

5

=ifx_cursor@o(A1,"lineitem":"L_LINESTATUS='F'","L_TAX":"tax",L_LINESTATUS;2:3)

L_LINESTATUS='F'时从表lineitem中的第2到第3个分片中查询数据,选项@o无序的查出L_TAX列,别名为tax,和L_LINESTATUS

 

 

 

 

 

 

 

6

=A5.fetch(10000)

 

7

=ifx_cursor@o(A1,"select skip 0 first 30000 L_ORDERKEY,L_RETURNFLAG,L_LINESTATUS,L_QUANTITY,L_EXTENDEDPRICE,L_DISCOUNT,L_TAX from lineitem";A3:"l_orderkey")

通过sql语句查询数据,跟A3

取同样的分片数据,分片字段为l_orderkey

因为与A3分片表的分片字段同名,

则同样可以省略。

8

=A7.fetch(10000)

 

 

 

9

=ifx_cursor@o(A1,"lineitem":"L_LINESTATUS='F'","L_TAX":"tax",L_LINESTATUS; A5:"l_orderkey")

L_LINESTATUS='F'从表lineitem选项@o无序的查出L_TAX列,别名为tax,和L_LINESTATUS,A5取同样的分片数据分片字段为l_orderkey,因为与A5分片表的分片字段同名,则同样可以省略。

10

=A9.fetch(10000)