检索查询结果
功能描述
可以检索查询的结果,嵌入的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;