你用ORA CLIENT连没问题是因为你的TNS中应该有设一个叫“REPORT”的别名,但是这个和你的DSN中的report不同,DSN中的是通过TNS(REPORT)和ORA相连的。把错误信息给出来看看!

解决方案 »

  1.   

    可能有两方面的原因:
    一、你的数据库服务端和客户端在同一台机器上,这样你的sqlplus可以直接访问数据库,但实际上NET8可能并没有配好,jdbc-odbc当然过不去。
    二、不要用Microsoft ODBC for Oracle,换成ORACLE ODBC DRIVER试试。
      

  2.   

    1。我的服务器端和客户端不在同一台机器上。
    2。错误信息:
    ava.sql.SQLException: [Microsoft][ODBC driver for Oracle][Oracle]ORA-12154: TNS: 无法处理服务名
    at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6106)
    at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:6263)
    at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(JdbcOdbc.java:2488)
    at sun.jdbc.odbc.JdbcOdbcConnection.initialize(JdbcOdbcConnection.java:317)
    at sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:160)
    at java.sql.DriverManager.getConnection(DriverManager.java:512)
    at java.sql.DriverManager.getConnection(DriverManager.java:171)
    at com.uniware.smgnms.sgip.DataBaseConnectionFactory.getConnection(DataBaseConnectionFactory.java:100)
    at com.uniware.smgnms.sgip.DataBaseConnectionFactory.main(DataBaseConnectionFactory.java:107)
    Exception in thread "main"
      

  3.   

    连接串的服务名不对。
    1、检查一下你程序连接串。
    2、用NET8测试一下服务名。