宿主变量数组
您可以使用宿主变量数组在 Db2 和您的应用程序之间传递数据数组。 宿主变量数组是以宿主语言声明的、用于SQL语句中的数据数组。
您可以将宿主变量数组用于以下操作:
- 将数据检索到主机变量数组中,供应用程序使用
- 将数据放入宿主变量数组,以便将行插入到表中
- 检索合并操作源的数据。
在以下情况下,宿主变量数组只能作为简单引用。 在语法图中, host-variable-array 表示对宿主变量数组的引用。
- 在FETCH语句中,用于多行取值。 参见 FETCH语句。
- 在插入语句的FOR n ROWS形式中,源数据使用主机变量数组。 参见插入语句。
- 在MERGE语句中,源数据有多个行。 参见MERGE语句。
- 在执行语句中,为INSERT语句或MERGE语句的动态 FOR n ROWS形式的参数标记提供值。 参见 “执行”语句。
如果应用程序在不支持的其他上下文中引用主机变量数组, Db2 会返回 SQLCODE -312 错误。
主机变量数组由主机语言的语句定义,如下文所述:
提示 :汇编程序、FORTRAN或REXX程序不支持宿主变量数组。 不过,您也可以使用SQL描述符区(SQLDA)在任何主机语言中实现类似的结果。 更多信息请参阅 《SQL描述符区域定义》(SQLDA )。
示例
以下语句使用主主机变量数组 COL1 和相应的指示器数组 COL1IND。 假设 COL1 有10个元素。 数组中的第一个元素对应第一个值,以此类推。 COL1IND 必须至少输入10个条目。
EXEC SQL
SQL FETCH FIRST ROWSET FROM C1 FOR 5 ROWS
INTO :COL1 :COL1IND
END-EXEC.