用户可以用一个C 语言结构包含宿主变量。任何合法的宿主变量类型都可以作为结构的成员。结构中成员的顺序和类型必须同要操作数据库表的列顺序、类型一致。
结构型宿主变量对应于目标表的各列,只需用此结构作为Oracle 数据库到应用程序数据传输的载体即可。
typedef struct
{
char emp_name[11];
int emp_number;
int dept_number;
float salary;
} emp_record;
emp_record new_employee;
。。。
EXEC SQL INSERT INTO emp (ename, empno, deptno, sal)
VALUES (:new_employee);
结构型指示变量
struct
{
char s_name[32];
int s_id;
char grad_date[9];
} student_record;
struct
{
short ind_s_name;
short ind_s_id;
short ind_grad_date;
} ind_student_record;
EXEC SQL SELECT student_name, student_idno, graduation_date
INTO :student_record INDICATOR :ind_student_record
FROM college_enrollment
WHERE student_idno = 7200;