第一次用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

解决方案 »

  1.   

    这个问题我解决了,发现是因为dbtest.pc 文件是属于root用户和群组的
    而我编译的用户是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
      

  2.   


    EXEC SQL BEGIN DECLARE SECTION;
        VARCHAR user[20],pass[20];
        VARCHAR ename[21];
        int empno;
        int sal;
    EXEC SQL END DECLARE SECTION;
    这么定义是否OK?
      

  3.   

    VARCHAR 好像不对,你去查查资料先。
      

  4.   

    恩,VARCHAR不行
    改成char就可以了 多谢各位了!!!