在proc中好像不能像你的程序中那样直接处理数据库操纵语言(建表,改表等)。另外c语言中的字符串,是不是要用双引号。oraclehome下面有一些例子可以参考。

解决方案 »

  1.   

    上面的例子是我从书上看到的,基本上没怎么改动,我想不会是因为"直接处理数据库操纵语言(建表,改表等)"这个原因吧,字符串确实应该是双引号,已经纠正。
    还有就是oraclehome下面的例子放在哪里啊,我怎么找不到呢
      

  2.   

    现在用proc编译通过了,但是编译.c文件却出现了错误,错误提示如下,请哪位老大教教我,在线等待
    原代码:
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>#define     UNAME_LEN      20
    #define     PWD_LEN        40EXEC SQL BEGIN DECLARE SECTION;
    VARCHAR     username[UNAME_LEN];  
    VARCHAR     password[PWD_LEN];
    EXEC SQL END DECLARE SECTION;EXEC SQL INCLUDE SQLCA;Main()

       strncpy((char *) username.arr, "phpdeveloper", UNAME_LEN);
       username.len = (unsigned short) strlen((char *) username.arr); 
       strncpy((char *) password.arr, "111111", PWD_LEN); 
       password.len = (unsigned short) strlen((char *) password.arr);   EXEC SQL CONNECT :username IDENTIFIED BY :password;
      
       printf("\nConnected to ORACLE as user: %s\n", username.arr);
      
       EXEC SQL SELECT userid, passwd FROM TFI_USER;       EXEC SQL COMMIT WORK RELEASE;
    }
    错误代码:
    /usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../crt1.o: In function `_start':
    /usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../crt1.o(.text+0x18): undefined reference to `main'
    /tmp/ccXGCQnP.o: In function `Main':
    /tmp/ccXGCQnP.o(.text+0x217): undefined reference to `sqlcxt'
    /tmp/ccXGCQnP.o(.text+0x2a8): undefined reference to `sqlcxt'
    /tmp/ccXGCQnP.o(.text+0x326): undefined reference to `sqlcxt'
    collect2: ld returned 1 exit status
      

  3.   

    需要导入 库文件,gcc -g  -I$(ORACLE_HOME)/precomp/public -I$(ORACLE_HOME)/rdbms/public -I$(ORACLE_HOME)/rdbms/demo -I$(ORACLE_HOME)/plsql/public  -c DbApi.c请参照以下make文件//main.mkmain.e : main.o DbApi.o
    gcc -g -L$(ORACLE_HOME)/lib -lclntsh   main.o DbApi.o -o main.e 
    main.o : main.c
    gcc -g  -c main.c
    DbApi.o : DbApi.c 
    gcc -g  -I$(ORACLE_HOME)/precomp/public -I$(ORACLE_HOME)/rdbms/public -I$(ORACLE_HOME)/rdbms/demo -I$(ORACLE_HOME)/plsql/public  -c DbApi.c # These macro definitions fill in some details or override some defaults
    PROCPLSFLAGS= UNSAFE_NULL=YES MODE=ORACLE DBMS=V8  sqlcheck=full userid=$(USERID)
    PROCPPFLAGS= code=cpp $(CPLUS_SYS_INCLUDE)
    USERID=gprs/gprs@orcl
    NETWORKHOME=$(ORACLE_HOME)/network/
    PLSQLHOME=$(ORACLE_HOME)/plsql/