日期:2014-05-16  浏览次数:20360 次

JDBC连接ORACLE报错ERR=12505

通过PL/SQL developer工具sqlplus ,用户名是aty,密码是xiu,url是11.12.22.142:1522/wfm能够正常连接oracle数据库。

?

但是通过以下JDBC代码不能连接?

?

public static Connection getOracleConnection() throws Exception
    {
        Class.forName("oracle.jdbc.driver.OracleDriver");
        String url = "jdbc:oracle:thin:@11.12.22.142:1522:wfm";
        String user = "aty";
        String pwd = "xiu";
        Connection connection = DriverManager.getConnection(url, user, pwd);
        return connection;
    }
?

?

Io 异常: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=186647296)(ERR=12505)(ERROR_STACK=(ERROR=(CODE=12505)(EMFI=4))))

?

?

?

通过pl/sql developer,执行以下sql

select * from v$instance;
select * from v$database;
select * from v$parameter where name like '%db_name%';
select * from v$parameter where name = 'instance_name';
select * from v$parameter where name = 'service_names';

?

发现数据库名称是wfm,但是实例名是wfm1。jdbc连接使用的是实例名,改成wfm1即可。

关于数据库名、实例名、服务名、域名等oracle中的概念,现在不是很理解,后面有时间再去了解。可以参考http://blog.csdn.net/wanghai__/article/details/4715300