VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

检索查询结果

功能描述

可以检索查询的结果,嵌入的SQL提供了常用命令SELECT和 FETCH的特殊变体。这些命令有了特殊的INTO子句, 声明检索出来的数值存储在哪个宿主变量里。SELECT用于返回单行的查询,同时FETCH 用于使用游标返回多行的查询。

接口原型

EXEC SQL SELECT  ...  INTO  ... FROM table-name ...;  //单行查询
EXEC SQL FETCH [ direction [ FROM | IN ] ] cursor_name INTO ...;  //多行查询

参数说明

参数名 参数说明
cursor_name 游标名字
direction direction定义抓取的方向和抓取的行数。 它可以是下述之一:
NEXT
抓取下一行(缺省)。
PRIOR
抓取前面一行。
FIRST
抓取查询的第一行(和ABSOLUTE 1相同)。
LAST
抓取查询的最后一行(和ABSOLUTE -1相同)。
ABSOLUTE count
抓取查询中第count行,或者如果 count为负就从查询结果末尾抓取第 abs(count)行。 如果count超出了范围, 那么定位在第一行之前和最后一行之后的位置;特别是ABSOLUTE 0定位在第一行之前。
RELATIVE count
抓取随后的第count行,或者如果 count为负就抓取前面的第 abs(count)行。 如果有数据的话,RELATIVE 0重新抓取当前行。
count
抓取随后的count行(和 FORWARD count一样)。
ALL
抓取所有剩余的行(和FORWARD ALL一样)。
FORWARD
抓取下一行(和NEXT一样)。
FORWARD count
抓取随后的count行。
FORWARD 0
重新抓取当前行。
FORWARD ALL
抓取所有剩余行。
BACKWARD
抓取前面一行(和PRIOR一样)。
BACKWARD count
抓取前面的count 行(向后扫描)。
BACKWARD 0
重新抓取当前行。
BACKWARD ALL
抓取所有前面的行(向后扫描)。
count count
可能是一个有符号的整数常量, 决定要抓取的行数和方向。对于FORWARD和BACKWARD的情况, 声明一个带负号的count等效于改变 FORWARD和BACKWARD的方向。
table-name NEXT 表的名字

返回值

其他

  • INTO子句出现在选择列表和FROM子句之间。 选择列表和INTO后面的列表的元素 (也叫目标列表)个数必须相同。在FETCH中INTO子句出现在所有正常的子句后面。INTO后面还可以有descriptor中,比如:

    EXEC SQL SELECT * INTO SQL descriptor mydesc FROM test;
    
  • 举例说明使用接口:

    EXEC SQL SELECT a,b INTO :i1,:i2 from insupd_test order by a;
    EXEC SQL FETCH C INTO :i,:var;