结构体数组变量¶
宿主变量用于处理单行单列数据,宿主结构体用于处理单行多列数据,宿主数组用于处理单列多行数据。为了简化多行多列的数据处理,并 提高pc应用程序的性能,应该采用结构体数组。
在内嵌SQL语句中使用宿主数组时,如果SQL语句涉及到多个列,那么需要定义多个宿主数组。为了简化多行多列数据的处理,开发人员应 该使用宿主结构体数组。但使用宿主结构体数组需要注意以下事项:
宿主结构体数组只适用于内嵌SELECT FETCH 以及INSERT 语句,而不能用在内嵌UPDATE和DELETE语句中。
在WHERE子句,内嵌PL/SQL块和动态SQL方法中不允许使用宿主结构体数组。
在宿主结构体数组以及其结构成员上不能执行EXEC SQL TYPE 和 EXEC SQL VAR 命令。
宿主结构体数组的尺寸不能超过2G字节,嵌套结构不能作为宿主结构体数组成员。当定义宿主结构体数组时,必须指定结构名。
当在内嵌SELECT语句中检索多行多列数据时,应该使用宿主结构体数组。需要注意:结构体成员顺序,类型和长度必须与选择列表列的顺序,类型和长度匹配, 并且要确保数组维数大于SELECT所检索数据的行数。
定义宿主结构体数组的正确方式如下:
EXEC SQL BEGIN DECLARE SECTION;
struct stu_data {
int id;
char name[20];
int age;
}stu[20];
EXEC SQL END DECLARE SECTION;