小弟有一个stu表,里面有两个字段(no int, name char(10)) ,有5条记录,想通过pro*c读取出来int main( int ac, char **av )
{
EXEC SQL BEGIN DECLARE SECTION;
int *pno; /*定义指针变量*/
char *pname;
EXEC SQL END DECLARE SECTION; connectDB();
newno = (int *)malloc(sizeof(int) * 5); /*给指针变量分配内存*/
newname = (char *)malloc( 20 * 20);
EXEC SQL select no,name INTO :pno,:pname FROM stu; /*读取数据*/
EXEC SQL COMMIT WORK RELEASE ;
free(pno);
free(pname);
return 0;
}可是运行之后总是说段错误,假如不读取name,只读取no就没有问题。请问我哪里错了呢?谢谢大家
{
EXEC SQL BEGIN DECLARE SECTION;
int *pno; /*定义指针变量*/
char *pname;
EXEC SQL END DECLARE SECTION; connectDB();
newno = (int *)malloc(sizeof(int) * 5); /*给指针变量分配内存*/
newname = (char *)malloc( 20 * 20);
EXEC SQL select no,name INTO :pno,:pname FROM stu; /*读取数据*/
EXEC SQL COMMIT WORK RELEASE ;
free(pno);
free(pname);
return 0;
}可是运行之后总是说段错误,假如不读取name,只读取no就没有问题。请问我哪里错了呢?谢谢大家
5条记录为何不用游标?只取一条记录的话加一个rownum<2试试
另外有没有空值?有的话加NVL(NO,0),NVL(NAME,CHR(0))处理一下