使用 INTO 子句

如果您将 SELECT 或 EXECUTE FUNCTION(或 EXECUTE PROCEDURE)语句与函数游标相关联,则该语句可包含 INTO 子句来指定变量来接收返回的值。仅当写 SELECT、EXECUTE FUNCTION 或 EXECUTE PROCEDURE 语句作为游标声明的一部分时,才可使用这种方法;请参阅 DECLARE 语句。在这种情况下,FETCH 语句不可包含 INTO 子句。

下列示例使用 SELECT 语句的 INTO 子句来指定 GBase 8s ESQL/C 中的程序变量:
EXEC SQL declare ord_date cursor for
   select order_num, order_date, po_num 
      into :o_num, :o_date, :o_po;
EXEC SQL open ord_date;
EXEC SQL fetch next ord_date;

如果您准备 SELECT 语句,则 SELECT 不可包括 INTO 子句,因此必须使用 FETCH 语句的 INTO 子句。

在您动态地创建 SELECT 语句时,不可使用 INTO 子句,因为您不可在准备好的语句中命名主变量。

如果您确定投影列表中值的数量和数据类型,则可使用 FETCH 语句中的 INTO 子句。然而,如果用户输入生成了查询,则可能无法确定被选择的值的数量和数据类型。在这种情况下,您必须或者使用系统描述符,或者使用指向 sqlda 结构的指针。