当前位置:首页 > 开发 > 数据库 > 正文

PL/SQL连接数据库成功,JDBC却不行

发表于: 2013-03-19   作者:bijian1013   来源:转载   浏览次数:
摘要:        搞了半下午的问题终于突破了。        用JAVA的JDBC连接ORACLE数据库,始终建立不了连接,驱动、用户名、密码都没问题。而奇怪的是用PL/SQL能连接上,查监听也没问题。但也应该不是JAVA的问题,第一:JAVA就是一个连接数据库,没有什么

       搞了半下午的问题终于突破了。

       用JAVA的JDBC连接ORACLE数据库,始终建立不了连接,驱动、用户名、密码都没问题。而奇怪的是用PL/SQL能连接上,查监听也没问题。但也应该不是JAVA的问题,第一:JAVA就是一个连接数据库,没有什么高深的技术,很简单的连接;第二:当前这程序在公司及在上一家客户那都能正常运行,且用的好好的,从来都没这方面的问题;第三:现在有些数据库连接不上,但有些数据库却能连接成功。
      最后发现是URL的问题,我的url是这样的jdbc.url=jdbc:oracle:thin:@192.8.190.1:1521:sznspos。注意这个sznspos,它是一个数据库名,问题也就出在这里。以前不知道,以为这是没问题的。其实不然,对于jdbc来说,这里不应该是数据库名,而应该是数据库的sid_name。对于PLSQL和SQLPlus来说,则只要是数据库名就好。大概以前的sid_name和数据库名一样,而没有注意到。于是,错误写法导致了如下错误:

java.sql.SQLException: Listener refused the connection with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
The Connection descriptor used by the client was:
192.8.190.1:1521:sznspos

修正后的url应该是jdbc:oracle:thin:@192.8.190.1:1521:sznspdb,这个sznspdb是数据库的sid_name,链接成功。


附:

查询当前数据库名
方法一:select name from v$database;
方法二:show parameter db
方法三:查看参数文件

 

查询当前数据库实例名(sid_name)
方法一:select instance_name from v$instance;
方法二:show parameter instance
方法三:在参数文件中查询

 

查询数据库域名
方法一:select value from v$parameter where name = 'db_domain';
方法二:show parameter domain
方法三:在参数文件中查询

 

查询数据库服务名
方法一:select value from v$parameter where name = 'service_name';
方法二:show parameter service_name
方法三:在参数文件中查询

PL/SQL连接数据库成功,JDBC却不行

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
1.先下载个 pl/sql Developer 百度,谷歌下就能找到 2.下载Oracle安装包 instantclient-basic-win32-
Oracle数据库所在服务器地址:192.168.3.67 默认端口:1521 服务名:OA10 修改 oracle\ora92\networ
配置PL/SQL Developer连接server数据库 远程应用server上安装client客户端软件,可在oracle官网上下
Oracle数据库所在服务器地址:192.168.3.67 默认端口:1521 服务名:OA10 修改 oracle\ora92\networ
使用PL/SQL客户端连接远程Oracle数据库的配置及注意事项 客户端不安装Oracle数据库的情况下 一、Ora
PL/SQL Developer 远程连接Oracle数据库 网上搜了很多方法,这个可行! 1、 配置服务器tnsnames.ora
1·下载32位 Instant Client for Microsoft Windows (32-bit) 2·解压文件到任意文件夹下 3·将/oracle
public class Main { public static void main(String[] args) throws SQLException { Connection c
JDBC增删改查,以增为例 有张表pl_policys,字段很多 第一步,在PL/SQL中直接将表拖入到空白处,选
1.登录PL/SQL Developer 这里省略Oracle数据库和PL/SQL Developer的安装步骤,注意在安装PL/SQL Dev
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号