`

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

 
阅读更多

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

       用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
方法三:在参数文件中查询

分享到:
评论

相关推荐

    Oracle PL/SQL学习官方教材

    Oracle PL/SQL是一种强大的编程语言,它将SQL与过程编程语言的特性相结合,为数据库开发提供了丰富的功能。在Oracle数据库环境中,PL/SQL是开发高效、可靠和可维护的数据库应用程序的关键工具。以下是对"Oracle PL/...

    PL/SQL免安装版

    PL/SQL是Oracle数据库系统中的一个关键组件,它是一种结合了SQL语言与过程编程的语言,专为数据库管理和开发设计。PL代表Procedural Language(过程语言),SQL则是Structured Query Language(结构化查询语言)。...

    oracle_oracle_oraclepl/sql_

    14. **PL/SQL与Java、C等语言的集成**:Oracle数据库提供了与这些语言交互的接口,如JDBC(Java Database Connectivity)和ODPI-C,使得PL/SQL可以与这些高级语言协同工作。 通过阅读《Oracle PL/SQL》这本书,法语...

    ORALCE PL/SQL程序设计第五版

    10. **数据库连接和调用接口**:PL/SQL可以与其他编程语言(如Java、C++)交互,通过Oracle Call Interface (OCI)或JDBC调用PL/SQL过程,实现跨平台的数据访问和处理。 通过《ORACLE PL/SQL程序设计第五版》,你将...

    PL/SQL7.5开发工具

    PL/SQL 7.5开发工具是一款专为Oracle数据库编程设计的强大集成开发环境,它集成了对PL/SQL语言的编写、调试、测试和优化功能。这个版本是针对Oracle数据库7.5版本的,虽然现在可能已经较为老旧,但在当时是数据库...

    PL/SQL存储过程编程

    6. **PL/SQL (Procedural Language for SQL)**: PL/SQL是一种过程化的SQL语言扩展,主要在Oracle数据库内部运行。与其他方法不同的是,PL/SQL程序直接存储在数据库中,并在数据库服务器上执行,这有助于提高性能并...

    PL/SQL Develope8

    PL/SQL Developer是一款由Allround Automations开发的专业用于Oracle数据库管理与开发的集成开发环境(IDE),它专为编写、调试、测试和管理PL/SQL代码而设计。标题中的"PL/SQL Develope8"可能是指该软件的第八个...

    PL_SQL Project.zip_exampleh93_pl/sql中的project_zip

    Java程序通过JDBC连接到数据库,执行PL/SQL存储过程,获取结果并处理。JDBC提供了CallableStatement接口,用于调用存储过程和函数。 一个典型的PL/SQL项目可能包括以下几个部分: 1. **数据库对象**:如表、视图、...

    Oracle客户端PL/SQL 中文乱码解决

    在Oracle数据库环境中,PL/SQL是Oracle数据库内置的编程语言,用于编写数据库应用程序。然而,当用户在使用Oracle客户端进行PL/SQL开发时,经常遇到一个棘手的问题——中文乱码。这个问题通常出现在查询结果、日志...

    PL/SQL Developer 中文帮助文档

    - **PL/SQL Developer**是一款专为Oracle数据库设计的强大集成开发环境(IDE),它提供了丰富的功能来帮助开发者高效地进行PL/SQL编程。 - 该版本(7.0)发布于2006年1月,旨在提升Oracle应用开发者的生产力。 ####...

    本机不安装Oracle客户端,使用PL/SQL Developer连接远程数据库

    本文将深入探讨如何在本地机器上不安装完整的Oracle客户端的情况下,利用PL/SQL Developer工具连接远程Oracle数据库,以及这一过程中的关键步骤和技术细节。 ### 一、理解Instant Client **Instant Client**是...

    javaEE学习笔试 pl/sql linux

    - **定义**:PL/SQL是一种专为Oracle数据库设计的过程化语言。 - **用途**:主要用于编写存储过程、触发器、函数和包等数据库对象,以增强数据库的性能和功能。 #### 2. PL/SQL 关键特性 - **过程化**:支持条件...

    PL/SQL Developer instantclient-11-2

    总之,"PL/SQL Developer instantclient-11-2" 是一个强大的开发工具与轻量级数据库连接解决方案的组合,它为Oracle数据库的开发人员提供了便利,使得他们能够在不增加过多系统负担的情况下进行高效的工作。

    64位操作系统下,使用PB、 PL/SQL 连接64位Oracle的方法

    使用 PB、 PL/SQL 连接 64 位 Oracle 的方法 在 64 位操作系统下,使用 PB、 PL/SQL ...使用 Oracle Instant Client 可以轻松连接 64 位 Oracle 数据库, PB、 PL/SQL 都可以使用 Instant Client 连接 Oracle 数据库。

    PL/SQL Developer10andorcle客户端

    Oracle客户端的即时版本轻便高效,满足了基本的数据库连接需求,而PL/SQL Developer则提供了强大的开发和管理工具,使得数据库管理工作更为便捷。无论你是数据库管理员还是开发人员,这套工具都能极大地提高你的工作...

    OracleClient精简版和PL/SQL Developer 1104

    安装并配置OracleClient后,开发者可以通过PL/SQL Developer连接到Oracle数据库,利用其丰富的功能进行开发工作。例如,通过PL/SQL Developer,开发者可以直接在工具中编写PL/SQL代码,然后通过连接的OracleClient...

    PL/SQL

    它支持多种数据库访问接口,包括ODBC、JDBC和.NET等,而PL/SQL是其内置的编程语言。 10. **PL/SQL Developer工具** 文件`plsqldev803.exe`可能是PL/SQL Developer的安装程序,这是一个流行的Oracle数据库开发工具...

    PL/SQL ExcelDocumentType

    在PL/SQL中处理Excel文件,通常需要借助第三方工具或库,如Oracle的UTL_FILE包或通过Java的 JDBC 连接来调用Apache POI库。UTL_FILE包允许在PL/SQL中处理文本文件,但不直接支持Excel格式,因此,如果需要操作Excel...

    oracle数据库操作,安装 pl/sql操作

    3. **应用程序开发**:通过Oracle JDBC驱动或ODBC连接,PL/SQL代码可以在Java、C#等编程语言中嵌入执行。 总结来说,Oracle Database 10G的安装和PL/SQL操作是数据库管理的重要组成部分。熟练掌握这些技能,不仅...

Global site tag (gtag.js) - Google Analytics