使用带有 INTO 子句的数组变量
在 GBase 8s ESQL/C 中,如果您随同包含 INTO 子句的 SELECT 语句使用 DECLARE 语句,且
该变量为数组元素,则可以整数字面值或变量来标识该数组的单个元素。当声明该游标时,确定用
作下标的变量的值;随后该下标变量表现为常量。
下列 GBase 8s ESQL/C 代码示例为 SELECT … INTO 语句声明游标,使用变量 i 和 j 作为数组
a 的下标。在您声明该游标之后,SELECT 语句的 INTO 子句等同于 INTO a[5], a[2]。
i = 5
j = 2
EXEC SQL declare c cursor for
select order_num, po_num into :a[i], :a[j] from orders
where order_num =1005 and po_num =2865;
您还可在 FETCH 语句中使用程序变量来指定 INTO 子句中程序的元素。在每一获取操作时为程
序变量求值,而不是当您声明该游标时求值。
错误检查
如果收到的变量的数据类型与被选择的项的数据类型不相匹配,如果可能,则将被选择的项的数据
类型转换为该变量的数据类型。如果不可能转换,则发生错误,并在 status 变量、sqlca.sqlcode
或 SQLCODE 中返回负数。在此情况下,程序变量中的值是无法预知的。
在符合 ANSI 的数据库中,如果罗列在 INTO 子句中的变量的数目不同于 Projection 子句的选择
列表中项的数目,则会收到错误。
ESQL/C 中的警告
在 GBase 8s ESQL/C 中,如果罗列在 INTO 子句中的变量的数目不同于 Projection 子句中项的数
目,则在 sqlwarn 结构中返回警告:sqlca.sqlwarn.sqlwarn3。转换的变量的实际数目少于这两个
数目。要获取更多关于 sqlwarn 结构的信息,请参阅 GBase 8s ESQL/C 程序员手册。
FROM 子句
SELECT 语句的 FROM 子句罗列要从其检索数据的表对象
FROM 子句有此语法:
FROM 子句
每个 SELECT 语句都需要 FROM 子句,不论是否需要任何数据源。如果您的查询使用数据库服
务器来对一不需要数据源的表达式求值,则 FROM 子句可引用您在其上持有充足的访问权限的当
前数据库中任何现有的表,如下例所示:
SELECT ATANH(SQRT(POW(4,2) + POW(5,2))) FROM systables;
如果 FROM 子句指定多个数据源,则该查询称为连接,因为它的结果集可从几个表引用连接行。
要了解更多关于连接的信息