第一次用pro*c编程,写了个程序,用proc编译后报了错,请各位大虾给我指点下!
不生感激啊!!!系统是redhat + oracle 10g#include <string.h>
#include <stdio.h>EXEC SQL INCLUDE SQLCA;void
main()
{
EXEC SQL BEGIN DECLARE SECTION;
VARCHAR user[20],pass[20];
EXEC SQL END DECLARE SECTION; strcpy(user.arr,"appman");
user.len = (unsigned short) strlen ((char *)user.arr);
strcpy(pass.arr,"appman");
pass.len = (unsigned short) strlen ((char *)user.arr);
EXEC SQL CONNECT :user IDENTIFIED BY :pass; EXEC SQL DECLARE emp_cursor CURSOR FOR
SELECT empno,ename,sal from emp; EXEC SQL OPEN emp_cursor;
EXEC SQL WHENEVER NOT FOUND DO break; while(1){
EXEC SQL FETCH emp_cursor INTO :empno,:ename,:sal;
printf("empno = %d,ename = %s,sal = %d\n",empno,ename,sal);
} EXEC SQL CLOSE emp_cursor;
EXEC SQL COMMIT WORK RELEASE;
}[oracle@xuesheng database]$ proc PARSE=NONE dbtest.pcPro*C/C++: Release 10.1.0.3.0 - Production on Wed Jun 24 18:21:24 2009Copyright (c) 1982, 2004, Oracle. All rights reserved.System default option values taken from: /opt/oracle/product/10.2.0/precomp/admin/pcscfg.cfg
INTERNAL ERROR: Failed assertion [PGE Code=90105]Segmentation fault
不生感激啊!!!系统是redhat + oracle 10g#include <string.h>
#include <stdio.h>EXEC SQL INCLUDE SQLCA;void
main()
{
EXEC SQL BEGIN DECLARE SECTION;
VARCHAR user[20],pass[20];
EXEC SQL END DECLARE SECTION; strcpy(user.arr,"appman");
user.len = (unsigned short) strlen ((char *)user.arr);
strcpy(pass.arr,"appman");
pass.len = (unsigned short) strlen ((char *)user.arr);
EXEC SQL CONNECT :user IDENTIFIED BY :pass; EXEC SQL DECLARE emp_cursor CURSOR FOR
SELECT empno,ename,sal from emp; EXEC SQL OPEN emp_cursor;
EXEC SQL WHENEVER NOT FOUND DO break; while(1){
EXEC SQL FETCH emp_cursor INTO :empno,:ename,:sal;
printf("empno = %d,ename = %s,sal = %d\n",empno,ename,sal);
} EXEC SQL CLOSE emp_cursor;
EXEC SQL COMMIT WORK RELEASE;
}[oracle@xuesheng database]$ proc PARSE=NONE dbtest.pcPro*C/C++: Release 10.1.0.3.0 - Production on Wed Jun 24 18:21:24 2009Copyright (c) 1982, 2004, Oracle. All rights reserved.System default option values taken from: /opt/oracle/product/10.2.0/precomp/admin/pcscfg.cfg
INTERNAL ERROR: Failed assertion [PGE Code=90105]Segmentation fault
而我编译的用户是oracle,现在把它改成oracle用户属主就可以了但是现在报了下面的错误:Semantic error at line 27, column 35, file oracle_test.pc:
EXEC SQL FETCH emp_cursor INTO :empno,:ename,:sal;
..................................1
PCC-S-02322, found undefined identifier
Semantic error at line 27, column 42, file oracle_test.pc:
EXEC SQL FETCH emp_cursor INTO :empno,:ename,:sal;
.........................................1
PCC-S-02322, found undefined identifier
Semantic error at line 27, column 49, file oracle_test.pc:
EXEC SQL FETCH emp_cursor INTO :empno,:ename,:sal;
................................................1
PCC-S-02322, found undefined identifier
EXEC SQL BEGIN DECLARE SECTION;
VARCHAR user[20],pass[20];
VARCHAR ename[21];
int empno;
int sal;
EXEC SQL END DECLARE SECTION;
这么定义是否OK?
改成char就可以了 多谢各位了!!!