在pro*c编程中  如下语句是不是都不对?
EXEC SQL INSERT INTO stu values(:stu);
EXEC SQL SELECT * FROM stu INTO :stu;
EXEC SQL UPDATE stu SET *=:stu;已知结构体stu和表stu字段一一对应  以上三条语句是不是在oracle中都是错误的?
必须写成
EXEC SQL INSERT INTO stu VALUES (:stu.name,:stu.sex,:stu.age);
EXEC SQL SELECT * FROM stu INTO :stu.name,:stu.sex,:stu.age;
EXEC SQL UPDATE stu SET name=:stu.name,sex=:stu.sex,age=stu.age;这样?请高手给我明确解答 谢谢啦

解决方案 »

  1.   

    刚才看了本书:
    proc*c在说明段不能说明结构类型的变量,但他能用指针来引用结构成员。
      

  2.   

    更正一下:
    You can use host arrays as components of host structures. In the following example, a structure containing arrays is used to INSERT three new entries into the EMP table:struct 

        char emp_name[3][10]; 
        int emp_number[3]; 
        int dept_number[3]; 
    } emp_rec; 
    ... 
    strcpy(emp_rec.emp_name[0], "ANQUETIL"); 
    strcpy(emp_rec.emp_name[1], "MERCKX"); 
    strcpy(emp_rec.emp_name[2], "HINAULT"); 
    emp_rec.emp_number[0] = 1964; emp_rec.dept_number[0] = 5; 
    emp_rec.emp_number[1] = 1974; emp_rec.dept_number[1] = 5; 
    emp_rec.emp_number[2] = 1985; emp_rec.dept_number[2] = 5; 
     
    EXEC SQL INSERT INTO emp (ename, empno, deptno) 
        VALUES (:emp_rec); 
    ...