将Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); 改为
Class.forName("oracle.jdbc.driver.OracleDriver"); 试试。

解决方案 »

  1.   

    我数据库是 ORAL 但是在我自己上用Net8 Assistant配制服务名时 名字是ORAL_192.168.2.22。我用 SQLPlus Worksheet 连时Connect LMY/LMY@ORCL 不行 ORA-12154: TNS: 无法处理服务名
    然后我换成
    Connect LMY/LMY@ORCL_192.168.2.22  就可以了。从程序的反应看,那我的jdbc配制对了吗。
    Class.forName("oracle.jdbc.driver.OracleDriver"); 不行
      

  2.   

    Connect lmy/lmy@ORCL 不行 ORA-12154: TNS: 无法处理服务名
    然后我换成
    Connect lmy/lmy@ORCL_192.168.2.22  就可以了。
      

  3.   

    DriverManager.getConnection中的地址 端口和用户名 密码是对的
      

  4.   

    我现在有两台服务器 192.168.2.22 (windows 2000 server)192.168.2.25 (RedHat9.0)
    现在
      Connection conn= DriverManager.getConnection("jdbc:oracle:thin:@192.168.2.22:1521:ORCL","lmy","lmy"); 没有报错
    但是Connection conn= DriverManager.getConnection("jdbc:oracle:thin:@192.168.2.25:1521:o817db","LMY","LMY");报
    aq.executeQuery:Io 异常: The Network Adapter could not establish the connection两个用  SQLPlus Worksheet 我都可以登录。
      

  5.   

    ("jdbc:oracle:thin:@192.168.2.22:1521:ORCL","lmy","lmy"); 
    中ORCL是SID,没错,这里应该是用SID在SQLPlus里连接是用你建立连接时的连接名,不一定是ORCL在JDBC的url连接字符串应该 是
    ("jdbc:oracle:thin:@192.168.2.22:1521:ORCL","lmy","lmy");
      

  6.   

    SQLPlus里连接是用你建立连接时的连接名,不一定是ORCL  --现在知道了。谢谢。
    那我那个192.168.2.25  又是怎么回事呢
      

  7.   

    好了
    ISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS_LIST =
            (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
          )
          (ADDRESS_LIST =
            (ADDRESS = (PROTOCOL = TCP)(HOST = test)(PORT = 1521))
          )    )    (DESCRIPTION =
          (PROTOCOL_STACK =
            (PRESENTATION = GIOP)
            (SESSION = RAW)
          )
          (ADDRESS = (PROTOCOL = TCP)(HOST = test)(PORT = 2481))
        )
    改为
    ISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS_LIST =
            (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
          )
          (ADDRESS_LIST =
            (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.25)(PORT = 1521))
          )    )    (DESCRIPTION =
          (PROTOCOL_STACK =
            (PRESENTATION = GIOP)
            (SESSION = RAW)
          )
          (ADDRESS = (PROTOCOL = TCP)(HOST = test)(PORT = 2481))
        )我不知道为什么 test=> 192.168.2.25
    就好了。但是我那个RedHat9.0的服务器是叫test.
      

  8.   

    看了乱七八糟,我问你,你的服务名是什么,实例名是什么,两台是不是都有ORACLE,版本是不是一样~~
      

  9.   

    服务器一 server
      192.168.2.22 (windows 2000 server) oracle 8.0.5
      实例名 ORCL  服务器二 test
      192.168.2.25 (RedHat9.0) oracle 8.1.5
      实例名 o817db我的机子
       192.168.2.29   (windows 2000 server) oracle 8.1.5
       服务名
        1、   orcl_192.168.2.22
        2、   o817db    测试
      ("jdbc:oracle:thin:@192.168.2.22:1521:orcl_192.168.2.22","lmy","lmy"); 不行
      ("jdbc:oracle:thin:@192.168.2.25:1521:0817db","LMY","LMY"); 不行报 
       aq.executeQuery:Io 异常: The Network Adapter could not establish the connection1 我把 ("jdbc:oracle:thin:@192.168.2.22:1521:orcl_192.168.2.22","lmy","lmy"); 改为
       ("jdbc:oracle:thin:@192.168.2.22:1521:OCRL","lmy","lmy"); 可以了
    2 现在我把192.168.2.25机上的
    ISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS_LIST =
            (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
          )
          (ADDRESS_LIST =
            (ADDRESS = (PROTOCOL = TCP)(HOST = test)(PORT = 1521))
          )    )
    ISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS_LIST =
            (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
          )
          (ADDRESS_LIST =
            (ADDRESS = (PROTOCOL = TCP)(HOST = test)(PORT = 1521))
          )    )
    HOST = test改为HOST = localhost 可以连几次后又不行了
    HOST = test改为HOST = 127.0.0.1 不行
    HOST = test改为HOST = 192.168.2.25 行 现在可以,但不知道连几次后会不行。
      

  10.   

    那是当然咯,你们两个数据库的版本不同,不同的版本NET8配置不同,一般都是用ORC1来表示的~
      

  11.   

    test=> 192.168.2.25  这个是怎么回事呢?
      

  12.   

    我也遇到这个问题,本机的oracle可以访问,远程的通过odbc可以,但是直接象楼主那样却不行,也不知道怎么解决。