我想用pro*c 在 linux下连接oracle数据库老是连接不上希望有人能和我联系。QQ:305806807

解决方案 »

  1.   

     报的是数据库连接不上。  编译都通过了。 
     我的数据库的实例名为:ORCL
               用户名为:sciarry
               密码为:  sciarry
    远程连接数据库没问题,但是这个程序始终连接不上。  ORA-12154 但是连接和实例名没有一点问题啊!代码如下:#include "sqlca.h"
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>int main(int argc,char **argv)
    {
         EXEC SQL BEGIN DECLARE SECTION;     VARCHAR user[20],pass[20],tnsname[20],name[20];
         char name1[100];
         EXEC SQL END DECLARE SECTION;
         
        
         int i=0;
         strcpy(user.arr,"sciarry");
         user.len=strlen((char *)user.arr);
         strcpy(pass.arr,"sciarry");
         pass.len=strlen((char *)pass.arr);
         strcpy(tnsname.arr,"ORCL");
         tnsname.len=strlen((char *)tnsname.arr);
    printf("----------------------------------------------");
         /*Connect the DB*/
         EXEC SQL CONNECT :user IDENTIFIED BY :pass USING :tnsname;  char crruentDate[15];
    printf("----------------------------------------------");
        printf("success\n");
     
    }
      

  2.   

    确保Oracle相关环境变量都导上了。不然,肯定连不上。
    tnsping ORCL试一下是否tnsname连不通,先。
      

  3.   

     tnsname 怎么测试呢?  我对tnsname搞不太懂。
      

  4.   

     我不知道服务器的名字 是不是 主机的名字呢?此处,假设服务器名为testserver,服务名为orcl.testserver.com,使用的侦听端口为1521,则tnsnams.ora文件中的一个test网络服务名(数据库别名)为: 
    test = 
    (DESCRIPTION= 
    (ADDRESS_LIST= 
    (ADDRESS=(PROTOCOL=TCP)(HOST=testserver)(PORT=1521)) 

    (CONNECT_DATA=(SERVICE_NAME=orcl.testserver.com) 

      

  5.   

    把下面这几句改了user.len=8;
    pass.len=8;
    tnsname.len=5;
      

  6.   

    用printf("%s\n",sqlca.sqlerrm.sqlerrmc);看看